[英]Rails Model Association Confusion
大家好。 我有以下型号:
Events
基本上是“日志项”。 换句话说,他们将存储什么User
在什么Category
对什么Item
了什么User
。 当然,当我想到这一点时,我认为它“有一个用户”,“有一个类别”,“有一个项目”,等等。 但是,这意味着在任何给定的User
行中都会有一个外键用于Event
,但这不是我想要的。 我想在Event
行中输入外键,因为Event
只是提供有关User
,什么Category
等的信息。
所以我的理解是,我应该说一个Event
“属于一个用户”,“属于一个类别”等,并且他们每个“有很多事件”作为回报,对吗? 我只是确定,因为这在逻辑上不像大多数其他关联那样读。 我不需要/希望能够从另一方(即user.event)访问事件,因为它没有多大意义。 所以如果我这样做,我会在另一边添加belongs_to
调用而不是has_one
吗?
也许我的设计不正确。
我最终希望能够呈现一个充满行的“日志页面”,到达描述的行如下:
event.user event.action event.item event.category
我不需要/希望能够从另一方(即user.event)访问事件,因为它没有多大意义。 所以如果我这样做,我会在另一边添加belongs_to调用而不是has_one吗?
将它们都添加( belongs_to
和has_many
)。 当然, user.event
没有意义,但user.events
确实有意义。
是的,在这里你想使用has_many和belongs_to关联。 在Activerecord的上下文中,has_many定义了belongs_to的需要。 “如果模型(a)具有另一个模型(b),则该相关模型(b)属于第一模型(a)”。
由于用户将有许多与之关联的事件,因此事件将属于用户。
另一方面,如果用户只有一个与之关联的事件,那么这些模型将具有“has_one”关联。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.