Подсчет записей для блога в Ruby on Rails — простой вопрос

Я новичок в рельсах, поэтому извините за простой вопрос. Я выполнил несколько руководств и создал блог с комментариями (даже используя немного AJAX — ха, горжусь собой). Я сделал некоторые настройки и прямо сейчас пытаюсь отобразить в index.html.erb счетчик комментариев, который представляет собой интерактивную ссылку, ведущую на страницу show.html.erb. Вот что я сделал до сих пор и не уверен, что это правильно. В comments_controller я добавил следующее:

  def count
    @post = Post.find(params[:post_id])
    @comment = @post.comments.count(params[:comment])
  end

Первый вопрос: это правильное определение для подсчета комментариев, связанных с конкретным сообщением. Второй вопрос: как мне затем вызвать его на моей странице index.html.erb, где у меня есть следующее:

<% @posts.each do |post| %>
  <%= render :partial => post %>
  <%= link_to 'View & Add Comments', post %>
<% end %>

Как видите, сейчас я использую ссылку link_to для перехода на страницу, но в идеале хотелось бы, чтобы она отображала что-то вроде: Комментарии (8).


person bgadoci    schedule 18.11.2009    source источник


Ответы (1)


Избавьтесь от этого метода контроллера, заменив, например, текущий link_to:

<%= link_to "View & Add Comments (#{post.comments.count})" %>

Если у вас уже есть объект @post, чтобы получить количество комментариев, вам просто нужно вызвать comments.count. А если вы не знакомы с интерполяцией строк, перейдите по этой ссылке может помочь.

person Andy Gaskell    schedule 18.11.2009
comment
Большое спасибо. Это было намного проще, чем я делал это. - person bgadoci; 18.11.2009
comment
Конечно! Я добавил аннотацию об интерполяции строк на тот случай, если вы не видели ее раньше. - person Andy Gaskell; 18.11.2009
comment
Это своевременно, потому что я просто пытался понять, как вызвать этот счетчик для размещения в любом месте без ссылки. Я ценю это. - person bgadoci; 18.11.2009
comment
Еще одна просьба... так как вы, кажется, задира рельсов... если у вас есть вторая голова к моему вопросу в stackoverflow.com/questions/1753227/ и посмотрите вверху ответ и мой комментарий/вопрос об AJAX. Если у вас нет времени, я понимаю. Просто подумал, что выброшу его там, так как сегодня вечером я много пытаюсь пробиться. - person bgadoci; 18.11.2009