Ruby on Rails多态关联 - 案例

时间:2015-03-27 18:58:07

标签: ruby-on-rails polymorphic-associations

您如何根据Ruby-on-Rails关联表示以下案例?

  

内容(名称,描述,链接)

有一个/属于一个或多个

  

作者

这是以下三种类型之一:

  

Person(first_name,surname)OR Artist(artist_name)OR Duo(name1,   NAME2)

1 个答案:

答案 0 :(得分:0)

当我学习多态关联的时候,那里有2个真正帮助我的来源

  1. guides.rubyonrails.org polymorphic-associations
  2. railscasts 1polymorphic-association
  3. 您必须记住,您有一个可以与其他人联系的模型,因此您需要键值才能知道要连接的型号和行

    class Content < ActiveRecord::Base
      belongs_to :commentable, polymorphic: true
    end
    
    class Person < ActiveRecord::Base
      has_many :contents, as: :commentable
    end
    
    class Artist < ActiveRecord::Base
      has_many :contents, as: :commentable
    end
    

    请注意,您应在内容模型中添加 commentable_id(作为您连接的字段的整数键)

    commentable_type(作为字符串,这将是您要连接的模型名称)

    Content (name, description, link, commentable_id, commentable_type)