私は3つのモデルを持っています。親、子、タイプ、および関係。リレーションシップは、親、子、およびタイプを参照するリッチ結合モデルです。
問題は、子が作成され、リレーションシップ テーブルが作成されている間、リレーションシップ テーブルの parent_id が入力されないことです。子とタイプのみが自動的に入力されます。
親.rb
attr_acccessible :relationships_attributes
has_many :relationships
has_many :children, :through => :relationships
has_many :types, :through => :relationships
child.rb
attr_acccessible :relationships_attributes
has_many :relationships
has_many :parents, :through => :relationships
has_many :types, :through => :relationships
accepts_nested_attributes_for :relationships
関係.rb
attr_accessible :parent_id, :child_id, :type_id
belongs_to :parent
belongs_to :child
belongs_to :type
children.controller
def new
@child = Child.new
@child.relationships.build
end
def create
@child = Child.new(params[:child])
if @child.save
redirect_to current_user
else
render "new"
end
end
new.html.erb
<%= simple_form_for @child do |f| %>
<%= f.input :first_name, :label => 'First Name' %>
<%= f.input :gender, :as => :select, :collection => ['Male', 'Female'] %>
<%= f.association :relation_types, :as => :collection_select %>
<%= f.button :submit, :class => "primary" %>
<% end %>
助けてください。
ありがとうございました!