我使用命令在Rails 3中创建Car模型:
rails generate model Car name:string id_str:string
但是我得到了错误:
/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'
为什么?
我的session_store.rb
Myapp::Application.config.session_store :cookie_store,key: '_myapp_session'
我的session_store.rb出了什么问题?
解决方法
当您尝试在Ruby<中使用Ruby 1.9.2 Hash语法时,通常会发生此错误. 1.9. 在Ruby 1.9.2中,以下代码完美地运行
Myapp::Application.config.session_store :cookie_store,key: '_myapp_session'
而在Ruby< 1.9你必须使用
Myapp::Application.config.session_store :cookie_store,:key => '_myapp_session'
这很奇怪,因为您的堆栈跟踪引用了Ruby 1.9.2.你确定你使用Ruby 1.9.2运行生成器吗?
在任何情况下,您都可以将session_store.rb文件转换为hash-rocket语法.如果它有效,则表示您没有使用Ruby 1.9.2并且粘贴了无效的错误消息.