我想在我的应用程序中实现依赖字段。为此,我使用dependent-fields-rails宝石。我已使用this tutorial设置了所有内容。好事:它有效。的种类。在我的品牌模式中,我有品牌倾听,如阿迪达斯,耐克等......
现在我的两个挑战:
data-option-value=" "
字段,因为如果选择品牌而不是特定品牌,我想显示该类别的选择表格。如果我在字段(硬编码)中添加值data-option-value="Adidas"
,则只有在我选择"阿迪达斯"时才会出现category_select表单。来自品牌下拉列表。更明确一点:
这是我得到的:
<div class="form-group">
<%= f.label :brand %>
<%= f.select(:brand, Brand.pluck(:company).uniq, {prompt:true}, {class: 'form-control'}) %>
</div>
<div class="form-group js-dependent-fields" data-select-id='warehouse_brand' data-option-value="Adidas">
<%= f.label :category %>
<%= f.collection_select(:category, Group.all, :brand, :name1, {prompt:true}, {class: 'form-control'}) %>
</div>
任何想法?非常感谢提前!
答案 0 :(得分:0)
我认为一个品牌有很多团体。如果您不想使用硬编码值,请将js-dependent-fields放入循环中,如下面的代码所示。
<div class="form-group">
<%= f.label :brand %>
<%= f.select(:brand, Brand.pluck(:company).uniq, {prompt:true}, {class: 'form-control'}) %>
</div>
<% Brand.all.each do |b| %>
<div class="form-group js-dependent-fields" data-option-value= "#{b.company}" data-select-id="warehouse_brand">
<%= f.label :category %>
<%= f.collection_select(:category, Group.where(brand_id: "#{b.id}"), :brand, :name1, {prompt:true}, {class: 'form-control'}) %>
</div>
<% end %>
要仅显示匹配的类别,您可以编写一个选择与品牌相关的查询,如代码所示
Group.where(brand_id: "#{b.id}")
答案 1 :(得分:0)
这实际上有效:
<div class="form-group">
<%= f.label :brand %>
<%= f.select(:brand, Brand.pluck(:company).uniq, {prompt:true}, {class: 'form-control'}) %>
</div>
<% Brand.all.each do |b| %>
<div class="form-group js-dependent-fields" data-option-value="<%= b.company %>" data-select-id="warehouse_brand">
<%= f.label :category %>
<%= f.collection_select(:category, Group.where(brand: b.company), :brand, :name1, {prompt:true}, {class: 'form-control'}) %>
</div>
<% end %>