在我的Rails应用程序中,我正在使用命名范围。
我想知道是否可以将params [:id]或@ batch.batch_id等参数传递给指定范围。
image.rb:
named_scope :batch_images, lambda {
{ :conditions => ["IMG_BATCH = ?",@batch.batch_id ]
}
}
目前上面的代码给出了一个错误消息'未定义的方法`batch_id'为nil:NilClass。
非常感谢你的帮助
答案 0 :(得分:9)
named_scope :batch_images, lambda {|batch| where("IMG_BATCH = ?", batch.batch_id) }
UPD for Rails 3 + :
scope :batch_images, ->(batch) { where("IMG_BATCH = ?", batch.batch_id) }
然后使用Image.batch_images(your_batch)