我很困惑在mail_to和subject之后冒号,所以有人请解释一下

时间:2016-05-03 18:08:34

标签: ruby-on-rails ruby

mail_to: user.email, subject: "Password Reset"

我是Rails的新手。我知道冒号出现在符号之前,但不知道为什么它会出现在这种类型的词之后。

2 个答案:

答案 0 :(得分:2)

这可能令人困惑,特别是因为:name本身有效(作为独立符号)但名称:本身没有任何意义。

底线是:name =>和name:实际上只在文字哈希中相同,所以

{ :name => "Michael Hartl" }

{ name: "Michael Hartl" }

是等价的,但除此之外你需要使用:name(首先是冒号)来表示符号。

这是因为两种哈希语法仍然普遍使用,因此必须能够识别它们。 (我的答案来自Micheal Hartl的Ruby on Rails)

答案 1 :(得分:0)

这种语法是在Ruby 1.9中引入的,以使哈希更具可读性。

:subject => "Password Reset"

# Starting from 1.9 you can do
subject: "Password Reset"

这两种语法都是以下语法糖:

{ :subject => "Password Reset" }