命名范围 - 传递params [:id]

tan*_*nya 1 ruby-on-rails

在我的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.

非常感谢您的帮助

Ser*_*nin 9

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)