【问题标题】:Polymorphic Join Table in Rails?Rails中的多态连接表?
【发布时间】:2010-02-25 06:57:30
【问题描述】:

在我的应用程序中,一个事件有多个与之关联的项目,可能是所有不同的类型。例如,“用户吃了香蕉”事件将有一个用户和一个与之关联的香蕉。

似乎实现此目的的一种方法是使用具有 3 个字段的多态连接表:event_id、attachable_type 和 attachable_id,其中 attachable 是多态类型。

这可能吗和/或我在这里离基地很远?

【问题讨论】:

    标签: ruby-on-rails jointable


    【解决方案1】:

    我通常为此使用has_many_polymorphs 插件。在m.onkey.org 上有一个great article on that

    您需要一个连接表,然后可以在event.rb 中编写类似的内容,例如:

    has_many_polymorphs :items, :from => [:users, :bananas]
    

    bananas.rb 然后会有类似的东西:

    belongs_to :event
    belongs_to :item, :polymorphic => true
    

    我容易忘记的一点是,虽然香蕉只属于一个事件,但您仍然必须致电banana_instance_1.events(注意复数!)。这很奇怪,但有效。如果你打电话给.event,你会得到nil

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多