Rails: рендеринг с проблемами разбивки на страницы модели комментариев - PullRequest
0 голосов
/ 03 марта 2012

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

HTML

<div id='comments'>
<%=render @comments %>
<%= will_paginate @comments, :class =>"pagination" %>
</div>

Но дело в том, что когда все комментарии о первом микросообщении будут отображаться только на каждом отдельном микросообщении, а не на отдельных комментариях к микросообщению.Поэтому я решил, почему бы не поместить код следующим образом:

HTML

<div id='comments'>
<%=render micropost.comments %>
<%= will_paginate @comments, :class =>"pagination" %>
</div>

Это в основном установило все конкретные комментарии в правильном микросообщении, НО это не разбивало на страницыно ссылки на страницы отображались, поэтому я решил, что это сработает, но это не сработало, но получил ошибку:

HTML

<div id='comments'>
<%=render micropost.comments %>
<%= will_paginate micropost.comments, :class =>"pagination" %>
</div>

Я очень смущен ине знаю, что делать, и да, у микросообщений предположительно нет @. Я бы оценил любые предложения, которые могли бы помочь!Спасибо!

Мой пользователь # Показать

Контроллер пользователя

class UsersController < ApplicationController
  def show
    @user = User.find_by_id(params[:id])
    @school = School.find(params[:id])
    @micropost = Micropost.new
    @comment = Comment.new
    @comment = @micropost.comments.build(params[:comment])
    @comments = @micropost.comments.paginate(:page => params[:page], :per_page => 10)
    @microposts = @user.microposts.paginate(:per_page => 10, :page => params[:page])
  end
end

1 Ответ

1 голос
/ 04 марта 2012

Это будет работать, но тот факт, что вам нужно выполнить задание внутри вашего представления, говорит вам, что, вероятно, это не тот способ:

<div id='comments'>
  <% comments = micropost.comments.paginate(:per_page => 10, :page => params[:page]) %>
  <%= render comments %>
  <%= will_paginate comments, :class =>"pagination" %>
</div>

Поймите, что и микросообщение, и комментарии используюттот же параметр страницы.Так что если вы хотите просмотреть вторую страницу комментариев какого-либо из указанных микросообщений, вы также переключитесь на вторую страницу микросообщений.Я бы пересмотрел показ всей этой информации на одной странице.

...