今天我按照导轨指南运行一个演示,其中包含scope
,如下所示:
scope :me, =>(keyword){where("title = ?",keyword)}
但它不起作用,所以我改为:
scope :me, ->(keyword){where("title = ?",keyword)}
现在它有效,所以我想知道rails中->
和=>
之间的区别
但我没有找到结果,所以请告诉我,谢谢。
答案 0 :(得分:3)
=>
将键与hashmap文字中的值分开
->
- 新lambda
(语法糖)
示例:
h = { "foo" => "bar" }
l = ->{ "hello" }
l.call # => "hello"
答案 1 :(得分:2)
第一个是语法错误。无论你在哪里阅读,都是完全错误的。
第二种通常被称为“stabby lambda syntax” - 它是写作的捷径:
lambda { |keyword| where('title = ?', keyword) }
更多关于Ruby中的lambdas:http://rubymonk.com/learning/books/1-ruby-primer/chapters/34-lambdas-and-blocks-in-ruby/lessons/77-lambdas-in-ruby