Rails,filterrific有多个参数

时间:2014-12-15 18:44:27

标签: ruby-on-rails-4 filterrific

我使用最新的ruby + rails,使用filterrific gem。它工作得很好 - 但是如何使用每个范围的多个参数?对于单列过滤,它很简单,但对于以下场景,它将如何处理?

过滤X英里的邮政编码Y

范围目前只知道被修改的值(英里数,或邮政编码 - 两个不同的范围),但两者都不知道。此过滤方案需要了解里程和邮政编码。我彻底搜查了文档,没有办法。有没有人这样做过,或者我遗漏了文档中隐藏的内容?

1 个答案:

答案 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进行测试