4

Railsで名前付きスコープを作成できることは知っています。これにより、後で構築できる条件を指定できます。

named_scope :active, :conditions => {:active => true}

...

MyModel.active.find(...)

これは、後で評価されるまでプロキシ オブジェクトを作成することによって機能します。私が知りたいのは、動的な名前のないスコープを作成できるどうかです。

つまり、使用できるメソッド「foo」はありますか

scope = MyModel.foo(:conditions => {:target_id => 4})

そして、より多くの s やその他のスコープ付き呼び出しをscope実行できるプロキシ オブジェクトとして渡しますか?.find

4

1 に答える 1

7

はい、匿名スコープを確認してください:

def find_products
  scope = Product.scoped({})
  scope = scope.conditions "products.name LIKE ?", "%#{keywords}%" unless keywords.blank?
  scope = scope.conditions "products.price >= ?", minimum_price unless minimum_price.blank?
  scope = scope.conditions "products.price <= ?", maximum_price unless maximum_price.blank?
  scope = scope.conditions "products.category_id = ?", category_id unless category_id.blank?
  scope
end
于 2009-12-16T14:07:29.920 に答える