Как очистить мой взгляд - PullRequest
0 голосов
/ 03 ноября 2010

Я пытаюсь создать раздел комментариев в блоге, где комментарии перечислены под сообщением.

У меня Posts и PostComments классов

У меня posts/show.html.erb дляпоказать сообщение в блоге, и я сделал post_comments/_post_comment.html.erb частичное, чтобы сделать комментарий

в posts/show.html.erb У меня есть следующее:

<% @post.post_comments.each do |comment| %> 
    <%= render :partial => '/post_comments/post_comment', :locals=>{ :comment => comment } %>
<% end %>

Есть ли способ вывести этот циклзрения и в метод в контроллере?Я хочу вызвать will_paginate и не думаю, что смогу это сделать, если логика будет в том виде, в каком она есть сейчас.

Ответы [ 2 ]

2 голосов
/ 03 ноября 2010

Если вы хотите вызвать will_paginate, выполните

<% @post.post_comments.paginate(params[:page], params[:per_page]).each do |comment| %> 
    <%= render :partial => '/post_comments/post_comment', :locals=>{ :comment => comment } %>
<% end %>

И лучше определить в вашем контроллере атрибут экземпляра для этого возврата

@post_comments = @post.post_comments.paginate(params[:page], params[:per_page])

А с твоей точки зрения

<% @post_comments.each do |comment| %> 
    <%= render :partial => '/post_comments/post_comment', :locals=>{ :comment => comment } %>
<% end %>
<%= will_paginate(@post_comments) %>

В этом случае этот цикл предназначен только для записи реального просмотра. Не все записи.

0 голосов
/ 03 ноября 2010

Попробуйте частичную коллекцию рендера:

<%= render :partial    => '/post_comments/post_comment', 
           :collection => @post_comments  %>

Это отобразит /post_comments/_post_comment.erb и передаст локальную переменную post_comment в шаблон для отображения. Счетчик итераций будет автоматически доступен для шаблона с именем вида post_comment_counter.

Если у вас есть страница, параметры размера страницы доступны, тогда вы можете вызвать paginate прямо в представлении.

<%= render :partial    => '/post_comments/post_comment', 
           :collection => @post.post_comments.paginate(:page => params[:page]) %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...