我正在嘗試爲用戶創建在我的項目中喜歡內容的方式。要做到這一點,我成立了一個多態的關係如下通過多態類的關係獲取has_many的所有相關實例
喜歡錶
table "likes", force: :cascade do |t|
t.integer "likeable_id"
t.string "likeable_type"
t.integer "user_id", null: false
t.datetime "created_at"
t.datetime "updated_at"
end
車型
class User < ActiveRecord::Base
has_many :likes, dependent: :destroy
has_many :newsletters, through: :likes, source: :likeable, source_type: "newsletter"
has_many :gift_cards, through: :likes, source: :likeable, source_type: "gift_card"
has_many :stories, through: :likes, source: :likeable, source_type: "story"
end
class Like < ActiveRecord::Base
belongs_to :user
belongs_to :likeable, polymorphic: true
end
class Newsletter < ActiveRecord::Base
has_one :like, as: :likeable, dependent: :destroy
has_one :user, through: :like, source: :likeable
end
class GiftCard < ActiveRecord::Base
has_many :likes, as: :likeable, dependent: :destroy
has_many :users, through: :likes, source: :likeable
end
class Story < ActiveRecord::Base
has_many :likes, as: :likeable, dependent: :destroy
has_many :users, through: :likes, source: :likeable
end
tldr:用戶必須通過那些喜歡很多喜歡和許多通訊,FIELDS禮品卡和故事。
我的問題,有了這個結構,什麼是讓用戶喜歡的一切的最佳方式?
結束了自己搞清楚了這一點,但感謝您的幫助! – SomeSchmo
太棒了!請添加您的答案! –