0

我有两个模型

艺术家

class Artist < ActiveRecord::Base
   has_many :photos, :as => :photoable, :dependent => :destroy

   def is_approved?
     self.admin_approve == true
   end
end

照片

  class Photo < ActiveRecord::Base
    belongs_to :photoable, :polymorphic => true
  end

我想找到(艺术家照片)admin_approve 为真的照片。我如何为此编写查询和范围。

提前致谢

4

2 回答 2

0

@jdoe,谢谢,但我按照以下方式完成了

class Photo < ActiveRecord::Base
  belongs_to :photoable, :polymorphic => true
    ...
  scope :approve_artists_photo, joins("Inner Join artists on artists.id = photos.photoable_id AND photos.photoable_type = 'Artist'").where("artists.admin_approved = 1")
end
于 2012-12-20T08:47:48.607 回答
-1

您可以添加范围

class Artist < ActiveRecord::Base
   has_many :photos, :as => :photoable, :dependent => :destroy

   scope :approved, where(:admin_approve => true)

   def is_approved?
     self.admin_approve == true
   end
end

然后将照片作为

Artist.approved.photos
于 2012-12-20T07:17:43.757 回答