问题描述
我有一个 product_form,其中 product_categories 是一个嵌套表单。这是一个部分,因此添加和编辑表单是相同的。
<%= f.fields_for :product_categories do |c| %>
<div class="custom-select">
<div class="select-tags">
<% if [email protected]_categories.present? %>
<%= select_tag :main_category,options_from_collection_for_select(MainCategory.all,:id,:title,selected: (@main_category || nil)),{class: "select2 buyer_select2 js-example-basic-single categories-select main-select",onchange: "",prompt: "Select Main Category"} %>
<%= select_tag :'category','',{class: "select2 buyer_select2 js-example-basic-single categories-select category-select",prompt: "Select Category"} %>
<%= c.select :sub_category_id,{class: "select2 buyer_select2 js-example-basic-single categories-select ",prompt: "Select Sub Category"} %>
<%= c.link_to_remove "Remove" %>
<% else %>
<% if c.object.sub_category.present? %>
<%= select_tag :main_category,selected: ( c.object.sub_category.category.main_category.id || nil)),{class: "categories-select main-select",prompt: "Select Main Category"} %>
<% @categories = Category.where(main_category_id: c.object.sub_category.category.main_category.id) %>
<%= select_tag :'category',options_from_collection_for_select(@categories,selected: ( c.object.sub_category.category.id || nil)),{class: "category-select",prompt: "Select Category"} %>
<% @sub_categories = SubCategory.where(category_id: c.object.sub_category.category.id) %>
<%= c.select :sub_category_id,options_from_collection_for_select(@sub_categories,"id","title",selected: ( c.object.sub_category.id || nil)),prompt: "Select something" %>
<%= c.link_to_remove "Remove" %>
<% end %>
<% end %>
</div>
</div>
<% end %>
<%= f.link_to_add 'Add Category',:product_categories,class: 'icon-img' %>
但是,该表单不适用于编辑。 nested_form 显示已选择的下拉列表。但它会额外运行一次。如果添加了 2 个类别,它将运行 3 次。我得到了绑定撬的精确计数。我无法理解这一点。因此,我不得不在 else 块中放置另一个 if 条件,因此添加类别按钮不起作用。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)