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