从一个模型中检索Rails中的多态关联

时间:2014-08-19 03:42:26

标签: ruby-on-rails ruby

class User < ActiveRecord::Base
  has_many :posts
  has_many :images, as: :imageable
end

class Post < ActiveRecord::Base
  belongs_to :user
  has_many :images, as: :imageable
end

class Image < ActiveRecord::Base
  belongs_to :imageable, polymorphic: true
end

我是否有特定方式可以使用User.images并同时获取用户的图片以及属于该用户的帖子图片?

出于某种原因,我无法理解如何做到最好。

2 个答案:

答案 0 :(得分:0)

在这种情况下,您可以避免多态关系,简单has_manybelongs_to就足够了。其中:

class User ActiveRecord::Base
  has_many :posts
  has_many :images
end

class Post ActiveRecord::Base
  belongs_to :user
  has_many :images
end

class Image < ActiveRecord::Base
  belongs_to :post
  belongs_to :user
end

但是我想你想问一下User.last.images而不是User.images

答案 1 :(得分:0)

同样可以通过has_many through associations来完成