Ruby 关于 Rails 多态关联 - 案例

Ruby on Rails polymorphic association - case

根据 Ruby-on-Rails 关联,您如何表示以下情况?

Content (name, description, link)

有one/belongs个或多个

Author

这是这三种类型之一:

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

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

  1. guides.rubyonrails.org polymorphic-associations
  2. railscasts 1polymorphic-association

您必须记住,您有一个模型会与其他模型连接,因此您需要有一个键值才能知道要连接到哪个模型和行

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

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

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

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