我有用户,照片,视频,文章模型。我想拥有一个SavedforLater模型,允许用户保存各种照片,视频和文章。
答案 0 :(得分:0)
我认为您需要多态关联才能实现这一目标。
设置多态表后,您可以使用以下内容:
class SavedForLater < AR::Base
belongs_to :saveable, polymorphic: true
belongs_to :user
end
class Video
has_many :saved_videos, as: :saveable, dependent: :destroy
end
class Photo
has_many :saved_photos, as: :saveable, dependent: :destroy
end
class Article
has_many :saved_articles, as: :saveable, dependent: :destroy
end
class User
has_many :saved_for_laters
end
现在,要保存第一个视频,您可以执行以下操作:
current_user.saved_for_laters.new(saveable: Video.first)
或者第一篇文章
current_user.saved_for_laters.new(saveable: Article.first)