【问题标题】:Why am I getting problems with my rails hash key notation?为什么我的 rails 哈希键符号出现问题?
【发布时间】:2012-02-12 16:29:55
【问题描述】:

我最近写了一些 Rails 代码行,比如

RandomApp::Application.config.session_store :cookie_store, key: '_ramdom_app_session'

我已经在开发和生产模式中使用过这种代码——它工作正常。现在我收到一个错误,我解释说我必须改用以下代码:

RandomApp::Application.config.session_store :cookie_store, :key => '_ramdom_app_session'

(请注意名为“key”的哈希键的不同用法。)

我正在使用 git 在不同的系统(PC、笔记本电脑)上开发应用程序。我正在使用 ruby​​ 1.8.7 (2011-12-28 patchlevel 357) [i386-mingw32] 和 Rails 3.1.3。发生了什么变化(例如在 ruby​​ 或 rails 中)或我做了什么更改导致此错误发生?

【问题讨论】:

  • Ruby 1.8.7 不支持{ key: value } 语法。如果它在此之前工作,那么它当时正在使用 1.9.x 运行。

标签: ruby-on-rails hash key notation colon


【解决方案1】:

关键:语法在 Ruby 1.8.7 中不可用。直到 1.9 才添加。您一定在某处更改了 Ruby 版本。

【讨论】:

    【解决方案2】:

    从 Ruby 1.9.x 开始支持 {key: value}。 {key => value} 语法是旧的,但它仍然可以被当前版本的 Ruby 解释。 由于您的应用程序是在 Ruby 版本 >= 1.9.x 中开发的,因此您不应该继续使用 Ruby 1.8.7,因为那样您会遇到更多奇怪的问题。 您应该检查生产环境中使用的是哪个 Ruby 版本,以便可以将相同版本的 Ruby 安装到您的系统中。

    有一个非常好的 Ruby 版本管理器可以用来在 Ruby 版本之间切换:http://beginrescueend.com/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-01
      • 1970-01-01
      • 2016-07-30
      • 2012-08-30
      • 2016-09-19
      • 2015-10-25
      • 2016-10-23
      • 2011-04-27
      相关资源
      最近更新 更多