我有一个选择框
<%=simple_form_for order_item do |oi|%>
<%= order_item.association :category, label: false, collection: current_company.categories, placeholder: 'Category', input_html: { class: 'form-control form-control-sm drop_down_input order_item_category} %>
<%end%>
此选择框与select2
目前,当我搜索任何内容时,会显示如下结果: -
但我希望结果显示搜索和显示项目父级的标签(注意: - 类别有一个父级。一个类别有很多子级)
然而我尝试使用option_groups
,问题是我无法选择option_group(它是父级),但我想选择所有类别。
belongs_to :parent, class: 'category', foreign_key: 'parent_id'
has_many :children, class: 'category'
任何帮助将不胜感激。感谢。
答案 0 :(得分:1)
请你试试这样的事情:
<%= order_item.association :category, collection: current_company.categories.collect { |c| [ c.id, "#{c.name} in #{c.parent.name}" ] }, value_method: :first, label_method: :last, placeholder: 'Category', input_html: { class: 'form-control form-control-sm drop_down_input order_item_category} %>
这应该会在select选项中为您提供有关父级的信息。我测试了它但没有jquery-select2
。
然后,您可能必须使用一些CSS / JS / HTML将in ...
移动到另一行。请看一下here。
修改强>
据我发现jquery-select2
在选项的文本中搜索,所以我的解决方案无法按预期工作。
例如:如果您有“法拉利汽车”选项并输入Cars
,则会显示Cars
为父类别的所有选项。如果您希望避免这种情况,可以更改匹配结果的方式:doc