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

时间:2011-05-15 15:38:56

标签: ruby-on-rails

在我的Rails应用程序中,我正在使用命名范围。

我想知道是否可以将params [:id]或@ batch.batch_id等参数传递给指定范围。

image.rb:

named_scope :batch_images, lambda {
  { :conditions => ["IMG_BATCH = ?",@batch.batch_id ]
  }
}

目前上面的代码给出了一个错误消息'未定义的方法`batch_id'为nil:NilClass。

非常感谢你的帮助

1 个答案:

答案 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)