我有两个型号Type和Activity。输入has_many
个活动和活动has_many
类型。为此,我使用了has_many :through
这个东西。这就是它的样子
活动
has_many :typeitems
has_many :types, :through => :typeitem
Typeitem
belongs_to :activity
belongs_to :type
类型
has_many :typeitems
belongs_to :activity
但这感觉不对。我想查询2件事
当我进入rails控制台并键入types.activity
时,我得到一个nil,这意味着我将获得一个对象。我应该将类型模型中的belongs_to
更改为has_many
。但是它会回到many-to-many
。应该有办法。
我查看了文档并找到了has_and_belongs_to_many
。我也读过这个
如果您需要在连接模型上进行验证,回调或额外属性,则应使用has_many:through。
我现在没有使用它,但我将来可能会想要它。
答案 0 :(得分:0)
双方都需要has_many :through
:
活动
has_many :typeitems
has_many :types, :through => :typeitem
Typeitem
belongs_to :activity
belongs_to :type
类型
has_many :typeitems
has_many :activities, through: :typeitems