我使用最新的ruby + rails,使用filterrific gem。它工作得很好 - 但是如何使用每个范围的多个参数?对于单列过滤,它很简单,但对于以下场景,它将如何处理?
过滤X英里的邮政编码Y
范围目前只知道被修改的值(英里数,或邮政编码 - 两个不同的范围),但两者都不知道。此过滤方案需要了解里程和邮政编码。我彻底搜查了文档,没有办法。有没有人这样做过,或者我遗漏了文档中隐藏的内容?
答案 0 :(得分:4)
你可以使用Rails' fields_for
表单帮助器,将具有多个键和值的哈希值提交到单个filterrific启用范围:
<%= f.fields_for :with_distance do |with_distance_fields| %>
<%= with_distance_fields.text_field :max_distance %>
<%= with_distance_fields.text_field :city %>
<% end %>
然后您可以访问范围中的各种值,如下所示:
scope :with_distance, lambda { |distance_attrs|
# `distance_attrs` is a hash with two keys:
# {
# :max_distance => '10',
# :city => 'Vancouver',
# }
where(...)
}
使用Filterrific 1.4.2和Rails 4.1进行测试