2011-06-07 50 views
1

好的,我決定在rails 3項目中使用Kaminari進行分頁。我跟着RailsCasts的視頻http://railscasts.com/episodes/254-pagination-with-kaminariRails 3&Kaminari分頁問題

一切都很順利,直到點或運行服務器。

控制器/ stories_controller.rb

def index 
    @stories = Story.all 
    @pages = Story.page(params[:page]).per(3) 
    @stories = Story.search(params[:search]) 
end 

的意見/故事/ index.html.erb

<%= paginate @pages %> 

當我啓動服務器的索引頁有問題顯示所有來自DB的故事並呈現分頁視圖(1 2 Next> Last»)。我錯過了什麼讓分頁工作?

回答

4

我仍然無法理解你的代碼。爲什麼你將Story.all分配到第一行的@stories並覆蓋第三行的變量?

無論如何,@stories將顯示「來自數據庫的所有故事」,因爲您沒有在@stories上調用分頁方法(.per)。分頁鏈接會顯示分頁計數,因爲您在@page變量上調用per方法並將其傳遞給幫助程序。

我的意思是,您需要在將關係傳遞給<%= paginate %>幫助器之前先調用.per。 這很簡單。

+0

嗨,我已經把'Story.page(params [:page])。per(3)'移到底部。分頁現在可行,但現在我的搜索沒有。 – ChrisMJ 2011-06-07 22:44:47

3

我想你想從搜索中獲得結果,對吧? 嘗試

@stories = Story.search(params[:search]).page(params[:page]).per(3) 

和喜歡的事:在你看來

<% @stories.each do |story| %> 
<%= render story %> 
<% end %> 
<%= paginate @stories %> 

+0

嗨,對不起,應該提到即時嘗試分頁整個結果集以及 – ChrisMJ 2011-06-07 17:45:11

+0

因此分頁@頁不起作用,對吧?嘗試將@pages重命名爲@mypages,看看它是否會更好。 – 2011-06-07 17:51:39

+0

好,所以把它和我的.per(3)改成了一個更大的數字,它實際上並沒有顯示分頁鏈接,這表明分頁在幕後工作......只是沒有在前端 – ChrisMJ 2011-06-07 21:43:49