はa method described in the Rails APIある:なぜこのスコープのラムダにブロックが続くのですか?ここ
scope(name, body, &block)
これもRailsのAPIに記載されている方法を使用した例である。
class Shirt < ActiveRecord::Base
scope :red, -> { where(color: 'red') } do
def dom_id
'red_shirts'
end
end
end
質問は、次のコードについてです:
do
def dom_id
'red_shirts'
end
end
それは何のために立つのですか?ブロックについてラムダに続くRubyの構文を見つけることができません。私は何か見落としてますか?助けてくれてありがとう。
ヒント:ラムダは他のオブジェクトとまったく同じオブジェクトです。 ' - > {where(color: 'red')}'と '42'の間には違いはありません。さて、位置的な引数とブロックの両方を取るメソッドを見たことがありますか?例えば。 Railsでは 'respond_with'ですか?まあ、それは 'スコープ'と違いはありません。 –
これは2つの点が混乱しています。 1.それは 'のように見える'ラムダとの接続ではなく、スコープです。 2、3番目のオプションのproc paramsはより欺瞞的になります –