我有两种模式:膳食和标签。它们与HABTM有关。我想做的是添加新餐。所以我有new.html名称字段,准备字段和所有标签(由切换按钮表示 - 每个标签都有自己的切换按钮)。用户可以点击标签,想要保存在这顿饭中。 这是一个问题。我可以显示所有标签,但我不知道如何告诉rails只保存点击的标签。 你能帮我找到合适的方法吗?
哦,并且还有一个用户(用户有很多餐),但我觉得无关紧要。 以下是我的观点:<%= form_for(@meal,:html => {:class => "meal-data-form"}) do |f| %>
<%= render 'shared/error_messages', object: f.object%>
<%= f.label :name, "Nazwa *" %>
<%= f.text_field :name, class: 'form-control'%>
<%= f.label :preparation, "Sposób przyrządzenia" %>
<%= f.text_area :preparation, class: 'form-control' %>
<h3>Określ tagi dla tego posiłku</h3>
<div id="tags-associated-with-meal">
<h4>Rodzaj posiłku</h4>
<div id="associated-nutrient-tags">
<% current_user.nutrient_tags.each do |nutrient_tag| %>
<button id="associated-type-tag-<%= nutrient_tag.id %>" type="button" class="btn btn-primary" data-toggle="button" aria-pressed="false" autocomplete="off">
<%= nutrient_tag.name %>
</button>
<% end %>
</div>
</div>
<%= f.submit yield(:button_name), class: "btn btn-primary" %>
答案 0 :(得分:0)
我不会使用切换按钮来执行此操作,我可能会使用复选框。
如果您使用了复选框,则会执行以下操作:
<%= f.collection_check_boxes :nutrient_tags_ids, current_user.nutrient_tags, :id, :name do |b| %>
<div class="collection-check-box">
<%= b.check_box %>
<%= b.label %>
</div>
以下是供参考的内容:http://www.sitepoint.com/save-multiple-checkbox-values-database-rails/
以下是Rails collection_check_boxes
官方文档:http://apidock.com/rails/v4.0.2/ActionView/Helpers/FormOptionsHelper/collection_check_boxes
希望有所帮助。