こんにちは私は現在Railsレシピを読んでおり、作成者がモデルでスコープを使用して、コントローラーにクエリを追加せずに(したがって、MVCルールに違反して)コントローラーが特定のクエリフラグメントにアクセスできるようにするセクションが1つあります。ある時点で彼はこれを持っています:
class Wombat < ActiveRecord::Base
scope :with_bio_containing, lambda {|query| where("bio like ?", "%#{query}%").
order(:age) }
end
ラムダオブジェクトとProcオブジェクトを使用したことはありません。これは、スコープに引数を追加して、概念的には引数を追加することと同じでありscope :with_bio_containing(query)
、したがって、スコープを関数であるかのようにカスタマイズできますか?ラムダはRailsのスコープで一般的に使用されていますか?