代码之家  ›  专栏  ›  技术社区  ›  Jorge Israel Peña

Rails模型关联混乱

  •  0
  • Jorge Israel Peña  · 技术社区  · 14 年前

    嘿伙计们。我有以下型号:

    • 类别
    • 事件
    • 项目
    • 场地
    • 用户

    Events 基本上是一个“日志项”。换句话说,他们将存储在 Item 凭什么 User 在什么地方 Category . 当然,当我想到这一点时,我认为它“有一个用户”、“有一个类别”、“有一个项目”等等。但是,这意味着 Event 在任何给定的 用户 划船,但这不是我想要的。我要外键在 事件 划船,因为 事件 只是提供一些信息 用户 ,什么 类别 等等。

    所以我的理解是我应该说 事件 “属于一个用户”、“属于一个类别”等等,而且他们每个人都“有很多事件”作为回报,对吗?我只是确定一下,因为这不像大多数其他的联想那样有逻辑性。我不需要/不想从另一方访问事件(即user.event),因为这样做没有多大意义。所以如果我这样做,我可以加上 belongs_to 打电话而不是 has_one 在另一边?

    也许我设计的不对。

    我最终希望能够呈现一个充满行的“日志页”,reach row的描述有点像:

    event.user event.action event.item event.category
    
    2 回复  |  直到 14 年前
        1
  •  1
  •   rwilliams    14 年前

    我不需要/不想进入 另一方的事件(即。 因为它不会 很有道理。如果我这么做,我会 只需将所属的添加到呼叫,而不是 另一边有一个吗?

    两者相加( belongs_to has_many ). 当然, user.event 没有道理,但是 user.events 确实有道理。

        2
  •  1
  •   Aaron Scruggs    14 年前

    是的,在这里您要使用一个具有多个属于关联的。在Activerecord的上下文中,has_many定义了归属的需要。”如果一个模型(a)有许多其他模型(b),则该关联模型(b)属于第一个模型(a)”。

    由于用户将有许多与之关联的事件,因此事件将属于用户。

    另一方面,如果用户只与一个事件关联,那么这些模型将具有“has_one”关联。