我試圖實現來自數據庫的記錄的分頁列表,其中給出了在URL中給出的條件。Rails will_paginate使用:條件,只有當參數存在於URL
例如:如果URL是這樣的:?name=Michael&age=20
應該顯示所有與邁克爾斯20歲等
但如果URL中含有&age=20
,它應該顯示所有的人有20歲,而忽略了「名」參數。
我分頁1頁2所列出,都來自同一個模型,只有位置而變化,所以我有我的控制器定義2個paginations:
@boss = Person.paginate(:page => params[:boss_page], :conditions => "position = 1")
@manager = Person.paginate(:page => params[:manager_page], :conditons => "position = 2")
如何現在添加從條件只有在參數存在的情況下URL?
我是想這樣說:
conditions = []
conditions << [ "age = ?", params[:age] ] if params[:age].present?
,但是當我在URL傳遞PARAM它給我的錯誤:
undefined method `%' for ["age = ? ", "1"]:Array
接下來的問題是如何從這個數組狀態合併條件「位置= 1「?
更新:我知道如何做分頁與條件,我只是沒有得到什麼是最好的想法來指定基於GET參數的條件。 我總是可以做這樣的:
if params[:age].present?
@boss = version with age conditons
else if params[:age].present? and params[:name].present?
@boss = version with age and name
else if params[:name].preset?
@boss = version with name only
但我相信,在軌道是可以做到的簡單。
對於這個問題[1] [1] [此鏈接幫助你。]:http://stackoverflow.com/questions/10867977/how-to-use-pagination-in-rails- 3-2-3 – 2012-07-30 09:17:46
我更新了問題 – 2012-07-30 09:40:12