1

誰かが私が間違っていることを見てもらえますか? それは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

アップデート

それを2つのスコープに分けて、うまくいきました:)

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

誰かがより良い方法を知っている場合は、遠慮なく教えてください

4

1 に答える 1