0

我将洗劫搜索数据以哈希的形式保存在数据库中:

{"name_cont"=>"an", "c"=>{"1366814870748"=>{"a"=>{"0"=>{"name"=>"gender"}}, "p"=>"eq", "v"=>{"0"=>{"value"=>"female"}}}, "1366814890125"=>{"a"=>{"0"=>{"name"=>"shoe_size"}}, "p"=>"gt", "v"=>{"0"=>{"value"=>"2"}}}}}

然后我从中创建一个洗劫表格:

@search = Sedcard.search hash
<%= search_form_for @search %>

如何遍历条件以基于类似于 railscasts 中呈现的表单对象创建选择?

4

1 回答 1

0

最后,我设法找到了正确的代码。它在 ransack 演示示例中:

该示例有点复杂,因为第一个字段(名称的搜索字段)显示在其他地方并且它是静态的,因此不需要显示两次。ransack 附加了最后一个空过滤器,没有预先选择任何内容,因此我也将其过滤掉。

            = f.condition_fields do |c|
              %div
                - render_attribute = true
                = c.attribute_fields do |a|
                  - regular_for_nondisplay = /\<option value=\"name\" selected\=\"selected\"\>Name\<\/option\>/
                  - regular_for_checking_not_empty = /selected=\"selected\"/
                  - filter_name = a.attribute_select
                  - if filter_name =~ regular_for_nondisplay || filter_name !~ regular_for_checking_not_empty
                    - render_attribute = false
                    -
                  - else
                    = filter_name
                  -

                - if render_attribute
                  = c.predicate_select 
                  = c.value_fields do |v|
                    = v.text_field :value
                  = link_to t('.remove'), '#', class: 'remove-fields btn-a btn-error'
于 2013-05-01T09:22:34.507 回答