谁能看看我做错了什么?这是 Rails 3:
class Ad < ActiveRecord::Base
belongs_to :postingtemplate
scope :active, (lambda do |ad|
Item.exists?(:postingtemplate => ad.postingtemplate_id)
end)
end
它是 Ad 模型中的一个范围,应该返回所有广告,其中 Item 存在于item.postingtemplate == ad.postingtemplate_id
更新
把它分成两个范围,它起作用了:)
class Ad < ActiveRecord::Base
belongs_to :postingtemplate
scope :active, where(:postingtemplate_id => Postingtemplate.active)
end
class Postingtemplate < ActiveRecord::Base
has_many :ads
scope :active, where(:id => Item.all.collect{|x| x.postingtemplate}.uniq)
end
如果有人知道更好的方法 - 随时告诉