20

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

例子:

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

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

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

谢谢!

4

2 回答 2

36

似乎这会奏效。

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

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

于 2012-12-19T19:45:23.293 回答
23

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

前任:

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

== 更新 ==

更好的是,使用f.collection_select. 这样,在用户使用下拉菜单搜索某些内容后,该选项会在下一页上被预先选择:

<%= form.collection_select :vendor_id_eq, Vendor.all, :id, :name, include_blank: true %>
于 2014-02-05T20:15:23.913 回答