2016-04-27 5 views
0

私は多くの通じる関係について質問があります。多くの通しが残っていない

私は3つのモデルがあります:アーティスト、スキル、およびマスタリー

skill.rb

class Skill < ActiveRecord::Base 
    has_many :masteries 
    has_many :artists, through: :masteries 
end 

mastery.rb

class Mastery < ActiveRecord::Base 
    belongs_to :artist 
    belongs_to :skill 
end 

artist.rb

class Artist < ActiveRecord::Base 
    has_many :masteries 
    has_many :skills, through: :masteries 
end 

毎回私はスキルをつけようとするアーティスト、artist.skills << skillを使用して、習熟が作成されますが、artist_idはゼロです。反対に同じこと。 skill.artists << artistは、私にskill_idが無制限のマスタイを与えます。

これは私が毎回両方を実行する必要があることを意味しますか?それとも私は何かが恋しい?

+0

スキルがまだ保存されていないようです... –

+0

ActiveRecordのどのバージョンをお使いですか? – Rashmirathi

+0

@МалъСкрылевъ私はスキル= Skill.lastとartist = Artist.lastでコンソールを使用しています。 –

答えて

0

これは基本的に、失敗した理由です。不明確な状況では、レールコンソールに設定できないようです。しかし、私と同じモデル設定をしている場合は、model.attributes << attribute構文を使用するとうまくいきます。明らかに、レールコンソールに偽の関係を作成する必要がある場合は、新しいMasteryを作成し、それに応じてcreator_idskill_idを設定して保存するだけです。

関連する問題