Rails - 如何保存用户选择的选项

时间:2015-11-22 00:14:39

标签: ruby-on-rails

我有两种模式:膳食和标签。它们与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" %>

1 个答案:

答案 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

希望有所帮助。