【问题标题】:What's the difference between polymorphic and write several one-to-many association多态和写几个一对多关联有什么区别
【发布时间】:2011-05-23 21:47:48
【问题描述】:

大家好, 我是 Rails 新手 这是制作鼓手模型和镲片模型的两种方法都有很多视频

第一种使用多态的方法:

class Drummer < ActiveRecord::Base
  has_many :videos, :as => :videoable
end

class Cymbal < ActiveRecord::Base
  has_many :videos, :as => :videoable
end

class Video < ActiveRecord::Base
  belongs_to :videoable, :polymorphic => true
end

使用两个 1:m 关联的第二种方式:

类鼓手

类钹

类视频

我没有在控制台中尝试过它们,但我认为它们都可以正常工作。但不知道有什么区别?

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    我相信您必须使用多态方法,因为一个模型不能比另一个模型多属于(一对一关联)。有关更多信息,请参阅此导轨指南:http://guides.rubyonrails.org/association_basics.html

    【讨论】:

      【解决方案2】:

      这取决于您的数据库中的列。如果你有videoable_typevideoable_id,你就是在做多态性。在这种情况下,在 Video 的实例上调用 videoable 可以返回任何内容,它与鼓手或钹无关。如果是drummer_idcymbal_id,就是你描述的后一个版本。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-03-20
        • 2010-09-12
        • 2010-09-26
        • 2022-09-27
        • 2016-09-30
        • 2015-01-19
        相关资源
        最近更新 更多