Sam Ruby 著「Agile Web Development With Rails」という本で Rails 開発を学んでいますが、モデルのコンストラクターを呼び出すと構文エラーが発生します。別の構文を使用してコンストラクターを呼び出す 2 つの方法を見つけましたが、本で使用されている構文が私の開発環境で機能しない理由を知りたいです。
この本では、キーと値のペアが次のような括弧で囲まれた構文を使用しています。
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)
ありがとう。