Stan Blog

學習過程中的一些記錄

[Rails] 多型關連(Polymorphic Associations)

多型關連(Polymorphic Associations) 可以讓一個 Model 不一定關連到某一個特定的 Model。建立 model 時在最後面加一個字串的 _type 欄位說明是哪一種Model。

例如有 Article、Photo、Comment 三個 model

可以透過多型關連讓 Comment model belongs_to 到另外兩個 Model上,我們希望這兩個 Model 都可以被留言。

建立資料庫

rails g model comment content:text commentable_id:integer commentable_type

回到 Model,指定他們的關聯關係:

class Comment < ActiveRecord::Base
  belongs_to :commentable, polymorphic: true
end
class Article < ActiveRecord::Base
  has_many :comments, as: :commentable
end
class Photo < ActiveRecord::Base
  has_many :comments, as: :commentable
end

Comments

comments powered by Disqus