1

有人可以发布正确的语法来设置filter()数据网格以处理多个值,包括column()设置?

我的用例是我想按与某个原点的距离进行过滤。我可以按原点进行过滤,但我必须在远处进行硬编码。我希望能够将“New York, NY”和“25”传递给过滤器,以便为我提供纽约州纽约市 25 英里范围内的所有结果。

您不必展示如何成功地将两个变量传递到代码块中的实际逻辑。

谢谢!

4

2 回答 2

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\"]"].

于 2012-12-07T20:30:34.687 回答
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
于 2015-05-30T19:18:53.003 回答