2012-12-07 37 views
1

可能有人請張貼在數據網格建立一個filter()具有多個值包括column()設置工作正確的語法過濾器?接受多個值使用DataGrid寶石

我使用的情況是,我想距離一定的淵源進行過濾。我能夠按來源過濾,但我必須在遠處進行硬編碼。我希望能夠通過「紐約,紐約」和「25」過濾器給我在紐約州紐約25英里內的所有結果。

你不必只顯示實際的邏輯如何順利拿到傳入代碼塊的兩個變量。

謝謝!

回答

0

這工作

filter(:user_location, :string, :header => "Location", :multiple=>true) do |value| 

origin = value[0] 
distance = value[1] 

end 

當您設置的過濾器這種方式與[]生成自動填充到表單字段。爲了傳遞多個值,您似乎需要在括號內輸入它們,並用逗號分隔。即["New York, NY", "25"]。這真的需要更好地解決。當您提交表單時,將執行過濾,但該字段將填入["[\"New York, NY\", \"25\"]"]

0

我建議稍微不同的事情。無需連接兩個東西放到一個:

filter(:user_location, :string, header: 'Location') do |value, model, grid| 
    origin = value 
    distance = grid.radius 
    ... 
end 

filter(:radium, :enum, select: [5,10,15,20,25], dummy: true) 
    # can be integer instead of enum