为什么我的rails hash key表示法出现问题?

时间:2012-01-17 21:23:57

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

我最近编写了一些像

这样的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中)或者我改变了什么导致了这个错误?

2 个答案:

答案 0 :(得分:2)

关键:Ruby 1.8.7中没有语法。它直到1.9才被添加。你必须在某个地方更改Ruby版本。

答案 1 :(得分: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/