我正在使用 Sam Ruby 的“Agile Web Development With Rails”一书学习 Rails 开发,当我调用模型的构造函数时出现语法错误。我找到了两种使用替代语法调用构造函数的方法,但我真的很想知道为什么书中使用的语法在我的开发环境中不起作用。
本书使用的语法中键/值对被括号括起来,类似于:
product = Product.new (title: "foo", description: "yyy")
此代码在单元测试中。当我运行“rake test:units”时,出现以下错误:
product = Product.new (title: "foo", description: "yyy")
__ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ ^
ruby_book_demo/depot/test/unit/product_test.rb:16:语法错误,意外 tLABEL
请注意,我已经能够通过执行以下操作来解决语法错误:
product = Product.new title: "foo", description: "yyy" #WORKS
或者
product = Product.new ({title: "foo", description: "yyy"}) # WORKS!
但我真的很想知道为什么会出现错误。我正在使用 jruby:
jruby -v jruby 1.6.7.2 (ruby-1.9.2-p312) (2012-05-01 26e08ba)
谢谢。