Rails + Ransack - 下拉列表集合?

时间:2012-12-19 18:45:43

标签: ruby-on-rails ransack

我喜欢hansack gem的灵活性,但是我无法让标准的collection_select正常运行。也许有人可以提供帮助。

示例:

      <%= collection_select(:expense, :project_id, Project.all, 
        :id, :name, { prompt: 'Select Project'}, { class: 'span4' }) %>

在这种情况下,此代码来自费用输入屏幕,因此第一个参数是费用对象。在搜索形式中它应该是什么?另外,我知道我需要在那里获得后缀。在这个例子中,我希望project_id_eq成为搜索模式。

另外,我的表单位于一个名为“reports”的控制器和视图上,我没有将此搜索放在默认控制器中。

谢谢!

2 个答案:

答案 0 :(得分:33)

似乎这会起作用。

<%= f.select :project_id_eq, options_from_collection_for_select(Project.all, "id", "name", @search.project_id_eq) %>

如果有人有其他建议,也很想知道。

答案 1 :(得分:17)

要使用include_blank执行此操作,请将其放在括号外:

例如:

<%= f.select :languages_id_eq, options_from_collection_for_select(Language.all, "id", "name"), include_blank: true %>

== UPDATE ==

更好的是,使用f.collection_select。这样,在用户使用下拉列表搜索某些内容后,将在以下页面中预选该选项:

<%= form.collection_select :vendor_id_eq, Vendor.all, :id, :name, include_blank: true %>