我喜欢hansack gem的灵活性,但是我无法让标准的collection_select正常运行。也许有人可以提供帮助。
示例:
<%= collection_select(:expense, :project_id, Project.all,
:id, :name, { prompt: 'Select Project'}, { class: 'span4' }) %>
在这种情况下,此代码来自费用输入屏幕,因此第一个参数是费用对象。在搜索形式中它应该是什么?另外,我知道我需要在那里获得后缀。在这个例子中,我希望project_id_eq成为搜索模式。
另外,我的表单位于一个名为“reports”的控制器和视图上,我没有将此搜索放在默认控制器中。
谢谢!
答案 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 %>