2014-02-13 80 views
0

我使用的是will_paginate寶石,並且目前有一個已經分頁的列表。Paginate評論With will_paginate

@businesses = Business.paginate(:page => params[:page], :per_page => 7)

<%= will_paginate @businesses %>

<% @businesses.each do |business| %>

要顯示註釋特定條目我用:

<% @business.comments.each do |comment| %>

我覺得像下面這樣可能會奏效,但它沒't:

@business.comments = Business.comments.paginate(:page => params[:page], :per_page => 7)

<%= will_paginate @business.comments %>

我似乎無法找到任何答案分頁的意見(99.9%肯定它,用它做是@ something.something,而不是僅僅@something)

+0

你確定你使用'business.comments.paginate'而不是'@ business.comments.paginate' – Shadwell

回答

1

設置@business.comments不僅不會工作,但實際上是危險的和破壞性的。您將與該業務關聯的評論設置爲只有該分頁呼叫返回的評論。 (查看當您將@business.comments設置爲分頁呼叫時,日誌顯示的內容

但是,您已經獲得了呼叫權限,只需將其設置爲不同的變量而不是重複使用@business.comments如果您使用@comments這將正常工作:

@comments = @business.comments.paginate(:page => params[:page], :per_page => 7) 

@comments.each do |comment| 
    ... 
end 
will_paginate @comments 
+0

它不扔?一個錯誤,但如果我仍然將per_page限制更改爲「1」顯示全部三條評論(但在數字欄1,2,3中有3頁可用) – Aluxzi

+1

您是否已將您的循環代碼更改爲'@comments.each do | comment |'?我已編輯過,以包括這一變化。 – Shadwell

+0

是的,但會產生一個錯誤「@businesses變量似乎是空的,你忘記傳遞集合對象的will_paginate?」..你爲什麼要將'@business.comment.each do'更改爲'@comments.each此代碼來自RoR.org教程'http:// guides.rubyonrails.org/getting_started.html#added-a-second-model' – Aluxzi