mail_to: user.email, subject: "Password Reset"
我是Rails的新手。我知道冒号出现在符号之前,但不知道为什么它会出现在这种类型的词之后。
答案 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" }