クライアントと client_prices の 2 つのモデルがあります。クライアントの表示ページに 2 つのクライアント価格のネストされたフォーム セクションが必要です。ネストされたフォームの 1 つは非カスタム価格用で、もう 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%>