私は:has_many :through
関係のためのフォームを構築しています:
class Account < ActiveRecord::Base
has_many :employments
has_many :people, :through => :employments
accepts_nested_attributes_for :employments
end
class Person < ActiveRecord::Base
has_many :employments
has_many :accounts, :through => :employments
end
class Employment < ActiveRecord::Base
belongs_to :account
belongs_to :person
end
Employment
モデルにはフィールドと:account_id
が含まれています:person_id
。
アカウント フォーム内に、次を追加します。
<% fields_for 'account[employments_attributes][]', @account.employments do |e| %>
<%= e.hidden_field :account_id, :value => @account.id %>
<%= e.collection_select :person_id, Person.all, :id, :name %>
<% end %>
collection_select
、またはselect
同様に、私が与えた順列では、 NoMethodError 例外で失敗します:
undefined method `person_id' for #<Array:0x82e7db0>
person_id
フィールドが存在しないかのように見えますが、create メソッド:account_id
を:person_id
完全に呼び出すことができます。