1
任何人都可以請看看我做錯了什麼嗎? 它的Rails 3:範圍Lambda錯誤的參數數
class Ad < ActiveRecord::Base
belongs_to :postingtemplate
scope :active, (lambda do |ad|
Item.exists?(:postingtemplate => ad.postingtemplate_id)
end)
end
它的廣告模型內的範圍,應該返回所有的廣告,其產品存在其中item.postingtemplate == ad.postingtemplate_id
UPDATE
打破了它分成兩個範圍和它的工作:)
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
如果有誰知道一個更好的方式 - 隨時告訴
奇怪的是,他們都給予了同樣的錯誤:'引發ArgumentError:錯誤的參數數目(0 1) '。有可能我應該使用別的東西而不是「哪裏」部分? –
你能告訴我們你是如何調用這個範圍的嗎?你是否傳遞了該呼叫的任何參數。請粘貼在你要調用的範圍 – manoj
的行中哦,我明白了:)就是這樣調用它:'Ad.active'。沒關係 - 找到另一種方式 –