如果选中复选框,则Rails保存信息

时间:2011-08-04 02:20:10

标签: ruby-on-rails ruby-on-rails-3 forms checkbox

如果选中该复选框,我该怎么做才能存储我的信息

<% @extra.each do |extra| %>
  <%= f.fields_for :purchaseds do |builder| %>
    <div class="label-field">
      <%= builder.label :name, extra.name %>
      <p><%= extra.description %></p>
    </div>
    <div class="text-field">
      $<%= extra.price %>
      <%= builder.check_box :purchased %>
    </div>

    #I WOULD LIKE THIS TO ONLY GET SAVED IF THE CHECK BOX FOR PURCHASED IS CHECKED
    <%= builder.hidden_field :name, :value => extra.name %>
    <%= builder.hidden_field :description, :value => extra.description %>
    <%= builder.hidden_field :price, :value => extra.price %>  
  <% end %>
<% end %>

我的客户要求能够自己添加额外的服务,然后用户可以选择是否想要购买它们作为订单的附件。所以我做的是我创建了一个名为Extra(用于额外服务)的表和另一个名为Purchased的表。购买属于Order,是一个嵌套属性。

1 个答案:

答案 0 :(得分:0)

两种方式。我会给你高级别的,但如果你想扩展,请告诉我!

选项1

向表单构建器添加提交按钮,并将复选框数据也发送到控制器。在那里,检查它是否设置为true。如果是这样,请保存数据。如果没有,请不要保存。

选项2

添加一个jQuery函数,当复选框设置为true时,它会向控制器发出AJAX请求以保存数据。

这取决于您希望用户如何使用此表单。