我刚刚完成了 Michael Hartl Rails 教程。试图做我自己的东西。
我无法让 Rails 了解我正在尝试创建的关系。我会尽量简化这一点。一棵有树枝、树枝和树叶的树会很合适,但是......
我将以父子格式为例。所以自然我有用户,假设用户创建家庭。
所以:
Class User < ActiveRecord::Base
has_many :families
has_many :parents
has_many :children
end
Class Family < ActiveRecord::Base
belongs_to :user
has_many :parents
end
Class Parent < ActiveRecord::Base
belongs_to: :user
belongs_to: :family
has_many: :children
end
Class Child < ActiveRecord::Base
belongs_to :user
belongs_to :parent
end
如您所见,我希望孩子属于属于家庭的父母,但孩子本身不属于家庭,除非通过父母。如果这不是一个比喻,但在这种特殊情况下是真实的,这很可悲。;)
我在父母下试过:
has_many :children, through: :parent
和
has_many :children, through: :family
但这没有用。
当我尝试使用时:
User.family.new
或者
User.child.new
...它说该方法不存在。我认为这意味着它不了解这些关系。
我究竟做错了什么?
如果它是相关的,那么现在家庭、父、子表中唯一的就是这些列:
t.string :content
t.integer :user_id