如何在rails中创建Savedforlater模型来存储照片视频和文章?

时间:2016-06-24 20:32:31

标签: ruby-on-rails

我有用户,照片,视频,文章模型。我想拥有一个SavedforLater模型,允许用户保存各种照片,视频和文章。

1 个答案:

答案 0 :(得分:0)

我认为您需要多态关联才能实现这一目标。

Read more here

设置多态表后,您可以使用以下内容:

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)