ruby-on-rails – 神秘的ruby语法错误

我超乎困惑:这几乎是一个RoR操作邮件程序指南的复制/粘贴,但它会引发语法错误:
class Contact < ActionMailer::Base


  def contact a_name,a_company,a_phone,a_email,a_comments
    subject    "Contact request from #{name}"
    recipients "some@address.com"
    from       "some_other@address.com"
    sent_on    Time.now
    body       { :name => a_name,:company => a_company,:phone => a_phone,:email => a_email,:comments => a_comments }
  end

end

错误是:

app/models/contact.rb:9: syntax error,unexpected tASSOC,expecting '}' body { :name => a_name,:company => a_company... ^ app/models/contact.rb:9: syntax error,expecting tCOLON2 or '[' or '.' ...{ :name => a_name,... ^ app/models/contact.rb:9: syntax error,expecting tCOLON2 or '[' or '.' ...ompany => a_company,:... ^ app/models/contact.rb:9: syntax error,expecting tCOLON2 or '[' or '.' ...,:comments => a_comme... ^ app/models/contact.rb:9: syntax error,expecting tCOLON2 or '[' or '.' ...email => a_email,:comments => a_comments,} ^

有任何想法吗?我不知道我在这里做错了什么

解决方法

添加括号正文({…})来明确指出您正在使用hash参数进行方法调用.

否则,{…}可能与身体方法中传递的函数(或lambda,无论是官方术语)混淆:body {puts“Hello world!” }

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...