2

我最近写了一些 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 中)或者我做了什么改变导致这个错误发生?

4

2 回答 2

2

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

于 2012-01-17T21:29:39.020 回答
1

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

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

于 2012-01-17T21:39:28.103 回答