我正在使用Rails 4.2和activeadmin 1.0.0.pre1以及postgresql 9.3。
我的模型属性是一个字符串。
现在,如果我过滤“发票2011”,它会给我包含“发票2011”的结果,如果您选择“包含”,这是默认行为。我希望在我的案例中包含“invoice”或“2011”的结果。
我知道在搜查时有一个cont_any
链方法。这就是我想要在过滤器中实现的目标:
Model.search(attribute_cont_any: %w(invoice 2011))
答案 0 :(得分:2)
目前没有解决方案,但也许这会对你有帮助。
您可以通过以下方式使用cont_any
过滤器:
filter :attribute, filters: [:cont_any] # or [:start, :cont_any, ...]
但目前存在一些问题:
这会产生一个类似于?q[attribute_cont_any]=invoice+2011
的网址,但需要?q[attribute_cont_any][]=invoice&q[attribute_cont_any][]=2011
。
before_action
来分割参数
params[:attribute_cont_any] = params[:attribute_cont_any].split
如果您请求正确的网址?q[attribute_cont_any][]=invoice&q[attribute_cont_any][]=2011
,它将返回正确的结果,但过滤器输入的值现为“[”invoice“,”2011“]
可以通过在ActiveAdmin代码
join
来解决此问题
醇>