在http://simple-form.plataformatec.com.br/#usage/collections的simple_form 2.0中,似乎只有一些关于grouped_select功能的文档。文档提供了这一行:
f.input :country_id, :collection => @continents, :as => :grouped_select, :group_method => :countries
但这似乎并没有给我足够的背景来使其发挥作用。这就是我所拥有的。
我有三种模式:查询,广告和插入
广告has_many插入,插入所属广告 查询belongs_to插入,插入has_many查询
此下拉列表用于查询视图。使用simple_form我可以= f.input :insertion, :collection => @ads
至少输出下拉列表中的广告标题列表。我希望ad.title可以作为optgroup。然后我想将广告插入作为可选择的内容...所以类似于:
<select>
<optgroup label="Ad.Title">
<option value="Ad.Insertion.id">Ad.Insertion.Title</option>
<option value="Ad.Insertion.id">Ad.Insertion.Title</option>
<option value="Ad.Insertion.id">Ad.Insertion.Title</option>
<option value="Ad.Insertion.id">Ad.Insertion.Title</option>
</optgroup>
<optgroup label="Ad.Title">
<option value="Ad.Insertion.id">Ad.Insertion.Title</option>
<option value="Ad.Insertion.id">Ad.Insertion.Title</option>
<option value="Ad.Insertion.id">Ad.Insertion.Title</option>
<option value="Ad.Insertion.id">Ad.Insertion.Title</option>
</optgroup>
</select>
有人可以提供有关使这个simple_form功能有效的建议吗?我真的很感激!
如果您对如何执行此属性有深入了解,请告诉我是否可以告诉您有关该应用的任何其他信息。
提前致谢!
更新:我已经能够使用以下方式获得部分工作:
= f.input(:insertion_id, :collection => Ad.order(:name), :as => :grouped_select, :group_method => :insertions)
这个问题是没有办法从我能说的内容中指定用作显示文本的列。我欢迎任何意见。
答案 0 :(得分:20)
经过一些额外的研究,更好地阅读文档,并使用语法,我已经解决了我想要的问题。
标准Rails grouped_collection_select
如下所示:
= f.grouped_collection_select(:insertion_id, Ad.order(:name),
:insertions, :name, :id, :title,
include_blank: "Please Choose...")
使用simple_form 2.0并使用以下语法可以重做:
= f.input(:insertion_id, :collection => Ad.order(:name),
:as => :grouped_select,
:group_method => :insertions,
:group_label_method => :name,
:label_method => :title,
:include_blank => "Please Choose...")
我希望将来帮助其他人。
答案 1 :(得分:0)
另一种方法是:
<%= f.input :product_category do %>
<%= f.select :product_category, grouped_options_for_select(Product.PRODUCT_CATEGORY), include_blank: true %>
<% end %>
当您尝试在不使用有效记录模式的情况下尝试形成optgroup选项时,此方法很有效。
参考: https://github.com/plataformatec/simple_form#wrapping-rails-form-helpers 和 http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-option_groups_from_collection_for_select