带有simple_form的条件嵌套表单

时间:2013-01-29 20:37:05

标签: ruby-on-rails

我有2个模型,客户端和client_prices,我想在客户端的显示页面中有2个客户价格嵌套表单部分。 1个嵌套表单用于非自定义价格,另一个用于自定义价格。非自定义(自定义== false)价格只能使用“自定义”属性进行编辑。 “自定义价格”将具有可编辑的所有属性。

我尝试了一些不同的方法,但我不知道在哪里放置条件逻辑以使其正常工作。我正在使用simple_form来生成表单,但我没有和它结婚。

控制器

class Client < ActiveRecord::Base
    attr_accessible :name, :client_prices_attributes
    has_many :client_prices
    accepts_nested_attributes_for :client_prices, :allow_destroy => true

end


class ClientPrice < ActiveRecord::Base
  attr_accessible :client_id, :price, :visit_type, :id, :custom

  belongs_to :client
  belongs_to :default_price

end

客户端显示页面

<%= simple_nested_form_for @client do |f| %>
    <%= f.fields_for :client_prices do |def_price_form| %>
        non-custom prices form here
    <%end%>
    <%= f.fields_for :client_prices do |def_price_form| %>
        custom prices form here
    <%end%>
<%end%>

1 个答案:

答案 0 :(得分:0)

尝试以下方法:

<%= simple_nested_form_for @client do |f| %>
  <%= f.fields_for :client_prices do |def_price_form| %>
    <%= if def_price_form.object.custom %>
      Here you fields for custom form      
    <% end %>
  <% end %>
<% end %>