Events
基本上是“日志项目”。换句话说,他们会在Item
中存储User
对Category
Event
所采取的行动。当然,当我想到这一点时,我认为它“有一个用户”,“有一个类别”,“有一个项目”,等等。但是,这意味着在任何给定User
行中Event
都会有一个外键,但这不是我想要的。我想要Event
行中的外键,因为User
只是提供有关Category
,Event
等内容的信息
所以我的理解是,我应该说一个belongs_to
“属于一个用户”,“属于一个类别”等,并且他们每个人都有“许多事件”作为回报,对吗?我只是确定,因为这不像其他大多数协会那样在逻辑上阅读。我不需要/希望能够从另一方(即user.event)访问事件,因为它没有多大意义。所以如果我这样做,我会在另一边添加has_one
来电,而不是event.user event.action event.item event.category
吗?
也许我的设计不正确。
我最终希望能够呈现一个充满行的“日志页面”,到达行描述的内容如下:
{{1}}
答案 0 :(得分:1)
我不需要/希望能够访问 来自另一方的事件(即 user.event)因为它不会 很有道理。所以,如果我这样做,我会 只需添加belongs_to调用,而不是 另一边是has_one吗?
添加它们(belongs_to
和has_many
)。当然,user.event
没有意义,但user.events
确实有意义。
答案 1 :(得分:1)
是的,在这里你要使用has_many& belongs_to association。在Activerecord的上下文中,has_many定义了belongs_to的需要。 “如果模型(a)具有另一个模型(b),则该相关模型(b)属于第一模型(a)”。
由于用户将有许多与之关联的事件,因此事件将属于用户。
另一方面,如果用户只有一个与之关联的事件,那么这些模型将具有“has_one”关联。