アソシエーションを効果的に使用する「レールの方法」をどのように行うべきかについて、私は完全に混乱しています。
Rails 4 アプリのモデル構成の例を次に示します。
class Film < ActiveRecord::Base
# A movie, documentary, animated short, etc
has_many :roleships
has_many :participants, :through => :roleships
has_many :roles, :through => :roleships
# has_many :writers........ ?
end
class Participant < ActiveRecord::Base
# A human involved in making a movie
has_many :roleships
end
class Role < ActiveRecord::Base
# A person's role in a film. i.e. "Writer", "Actor", "Extra" etc
has_many :roleships
end
class Roleship < ActiveRecord::Base
# The join for connecting different people
# to the different roles they have had in
# different films
belongs_to :participant
belongs_to :film
belongs_to :role
end
上記のモデル構成を考えると、私が望んでいたコードは、作家を映画に直接追加し、最終的に結合を正しく設定できるようにすることを望みます。
たとえば、次のようなことができるようになりたいと思います。
## The Code I WISH I Had
Film.create!(name: "Some film", writers: [Participant.first])
これが完全に間違っていると考えているかどうかはわかりませんが、それは不可能に思えます。これを達成する正しい方法は何ですか?ネストされたリソース? カスタム セッター + スコープ? 他の何か?仮想属性?ありがとう!