今日、私はレールガイドに従い、以下を含むデモを実行scope
します:
scope :me, =>(keyword){where("title = ?",keyword)}
しかし、うまくいかないので、次のように変更します。
scope :me, ->(keyword){where("title = ?",keyword)}
->
動作するようになったので、Rails のとの違いを知りたいのですが=>
、結果が見つからなかったので、教えてください、ありがとうございます。
今日、私はレールガイドに従い、以下を含むデモを実行scope
します:
scope :me, =>(keyword){where("title = ?",keyword)}
しかし、うまくいかないので、次のように変更します。
scope :me, ->(keyword){where("title = ?",keyword)}
->
動作するようになったので、Rails のとの違いを知りたいのですが=>
、結果が見つからなかったので、教えてください、ありがとうございます。
=>
ハッシュマップ リテラルの値からキーを分離します
->
- 新しいlambda
(シンタックス シュガー)
例:
h = { "foo" => "bar" }
l = ->{ "hello" }
l.call # => "hello"
1 つ目は構文エラーです。どこを読んでも、それは完全に間違っています。
2 つ目は一般に「安定したラムダ構文」として知られています。
lambda { |keyword| where('title = ?', keyword) }
Ruby のラムダの詳細: http://rubymonk.com/learning/books/1-ruby-primer/chapters/34-lambdas-and-blocks-in-ruby/lessons/77-lambdas-in-ruby