2017-03-10 65 views
1

我的任務是爲一個Rails項目創建'前10個','下10個','最新'和'最老'的鏈接,而不使用寶石。Rails沒有Gem的分頁

在控制器中,我可以顯示第一(最新)的10個項目中的表設置:

不過,我不相信這個正確設置與10的每一個新的頁面,因爲我無法改變的頁碼(hxxp:// ...頁面= 1),以獲得下一組10

我已經試過指令的幾頁,我能找到,包括:

任何方向是非常讚賞。至於第二個例子網站,我有兩個模型類:

  • ApplicationRecord <的ActiveRecord :: Base的
  • 行< ApplicationRecord

看來我應該編輯:

  • 行< ActiveRecord :: Base

但不知道在哪裏可以找到/我應該如何添加它。感謝您對初學者問題的耐心等待。

僅供參考,ERB文件鏈接的格式:

<%= link_to 'Next 10', rows_path %> 

回答

2

你有什麼沒有在正確的軌道,除非你不告訴你真正想要檢索下一個10個集的DB記錄。要做到這一點,你需要通過offset,它會告訴數據庫你想從中檢索10條記錄的「起始點」。

爲此,您可以在您的代碼是:

def index 
    @rows = Row.order(created_at: :desc).limit(10).offset(@page * 10) # This assumes that the page numbering starts from 0 instead of 1 as I gather from the question 
end 
+0

有了偏移,我該如何調用頁面移動到一個或下一個?目前該命令將轉到rows_path。我嘗試了rows_path(頁面:+ 1),但是我收到錯誤,說我不允許在那裏輸入整數。 –

+0

這確實回答了這個問題。爲了實現它,我需要在html文件中使用to_i來將頁面識別爲整數。 –