will_paginate не отображается в сети ... - PullRequest
2 голосов
/ 12 июля 2010

Предыдущий вопрос здесь: Какова обычная практика по ограничению результата в RoR?

Вот users_controller:

def show
  @user = User.find(params[:id]) 

  @posts = @user.posts.paginate :page => params[:page] 

  respond_to do |format|
    format.html # show.html.erb
    format.xml  { render :xml => @user }
  end
end

и мое шоуhtml.erb:

<%=h @posts.length %> 
<%=h @posts.inspect %> 

<%= will_paginate @posts %>

Но в браузере я получаю только это:

4 [#<Post id: 7, title: "I am a root", description: "what can I do", views: 8, created_at: "2010-07-12 15:16:26", updated_at: "2010-07-12 15:16:26", user_id: 32>, #<Post id: 8, title: "root Post two", description: "This is the second one.", views: 2, created_at: "2010-07-12 15:42:57", updated_at: "2010-07-12 15:42:57", user_id: 32>, #<Post id: 9, title: "The third one.", description: "Ok, this is the third ads", views: 3, created_at: "2010-07-12 15:43:18", updated_at: "2010-07-12 15:43:18", user_id: 32>, #<Post id: 10, title: "I type very many", description: "What is very many for?", views: 33, created_at: "2010-07-12 15:43:34", updated_at: "2010-07-12 15:43:34", user_id: 32>]

Кроме того, я не вижу ничего другого.

Я пытался снимать с консоли:

>> defined? WillPaginate
=> "constant"
>> [].paginate
=> []
>> ActiveRecord::Base.respond_to? :paginate
=> true

Ответы [ 2 ]

7 голосов
/ 12 июля 2010

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

<% @posts.each do |post| -%>
  <p>Title: <%= post.title %>
  ...
<% end -%>

Вы, вероятно, не получите ссылки на нумерацию страниц, если у вас нет 30 записей в массиве (я думаю, что это значение по умолчанию). Вы также можете сделать это в своем контроллере, чтобы увидеть, что нумерация страниц работает с меньшим набором данных:

@posts = @user.posts.paginate :page => params[:page], :per_page => 2

Надеюсь, это поможет!

0 голосов
/ 12 июля 2010

Избавьтесь от строки inspect и добавьте пользовательский код для отображения каждого свойства ваших объектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...