我对“有多少关系”有疑问。
我有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
给了我一个没有技能的掌握。
这是否意味着我每次都要执行这两项操作?或者我错过了什么?
答案 0 :(得分:0)
所以基本上,这就是它失败的原因:在某些不明确的情况下,你似乎无法在rails控制台中设置它。但是,如果您使用与我相同的模型设置,使用model.attributes << attribute
语法将正常工作。显然,如果您需要在rails控制台中创建虚假关系,您只需创建一个新的Mastery
,并相应地设置其creator_id
和skill_id
,然后保存它。