创建Rails模型时出现语法错误

Lee*_*eem 3 ruby-on-rails ruby-on-rails-3

我使用命令在Rails 3中创建Car模型:

rails generate model Car name:string id_str:string
Run Code Online (Sandbox Code Playgroud)

但是我得到了错误:

/home/XX/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.1/lib/active_support/dependencies.rb:234:in `load': /home/XX/myapp/config/initializers/session_store.rb:3: syntax error, unexpected ':', expecting $end (SyntaxError)
...sion_store :cookie_store, key: '_myapp_session'
Run Code Online (Sandbox Code Playgroud)

为什么?

我的 session_store.rb

Myapp::Application.config.session_store :cookie_store, key: '_myapp_session'
Run Code Online (Sandbox Code Playgroud)

我有什么问题session_store.rb

Sim*_*tti 7

当您尝试使用Ruby <1.9的Ruby 1.9.2 Hash语法时,通常会发生此错误.

在Ruby 1.9.2中,以下代码完美地运行

Myapp::Application.config.session_store :cookie_store, key: '_myapp_session'
Run Code Online (Sandbox Code Playgroud)

而在Ruby <1.9中你必须使用

Myapp::Application.config.session_store :cookie_store, :key => '_myapp_session'
Run Code Online (Sandbox Code Playgroud)

这很奇怪,因为您的堆栈跟踪引用了Ruby 1.9.2.你确定你使用Ruby 1.9.2运行生成器吗?

在任何情况下,您都可以将session_store.rb文件转换为哈希火箭语法.如果它有效,则表示您没有使用Ruby 1.9.2并且粘贴了无效的错误消息.