【问题标题】:Rails Save File CheckboxRails 保存文件复选框
【发布时间】:2011-08-04 16:47:21
【问题描述】:

如何才能使我的信息仅在选中复选框时才被存储。这是我目前所拥有的:

<% @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 的表。 Purchased属于Order,是一个嵌套属性。

【问题讨论】:

  • 您帖子的标题是“Rails 保存文件复选框”,但我在您的代码中没有看到任何关于文件的内容。是否涉及文件?

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


【解决方案1】:

在您购买的模型中添加验证:

  validates_presence_of :name, :description, :price, :if => :purchased

更新

:reject_if选项添加到您购买的父模型

accepts_nested_attributes_for :purchaseds, :reject_if => {|attrs| !attrs[:purchased]}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-12
    • 1970-01-01
    • 1970-01-01
    • 2019-09-05
    • 1970-01-01
    • 2014-04-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多