Rails 4.2语法错误,意外':',期待=>

时间:2015-06-05 00:27:31

标签: ruby-on-rails ruby ruby-on-rails-4 hash ruby-on-rails-4.2

我有两台计算机,主要用于开发我的Rails应用程序。在计算机1上工作时,我在一些输入中添加了一些引导元素。例如:

= f.select :transport_from_state, options_for_select(state_populator, @invoice_ambulance.transport_from_state), { include_blank: true}, { class: 'chosen-select', 'data-placeholder': 'State' } 

我添加了'data-placeholder': 'State'并使用了'较新'的语法,而不是旧的:data-placeholder' => 'State'。该页面在计算机1上没有错误。

我拉下了计算机2,现在我为'data-placeholder'的每个实例收到错误。这是我的错误:

syntax error, unexpected ':', expecting =>
...en-select', 'data-placeholder': 'State' }

我可以用旧语法替换它,它工作正常。但是,我不应该将此实例的100个实例切换为不推荐使用的语法。我已经安装了捆绑包,更新了捆绑包,并重建了数据库而没有运气。

电脑1(工作)

ruby​​ 2.2.0p0

Rails 4.2.0

电脑2(不起作用)

ruby​​ 2.2.0preview1

Rails 4.2.0

2 个答案:

答案 0 :(得分:7)

你需要将计算机2升级到真正的Ruby 2.2.0而不是这个beta-ish"预览"你有版本。使用带有JavaScript样式的尾部冒号语法的带引号的符号:

{ 'some string': value }
在Ruby 2.2之前,

没有效果,你在计算机2上拥有的2.2.0preview1版本显然不支持它。

BTW,没有语法,当Hash-literal中的键为一些符号。无论谁告诉你hashrocket被弃用了,充其量是混淆的。

答案 1 :(得分:2)

"更新"语法仅适用于符号。

{hello: 'world'}相当于{:hello => 'world'},但如果您的密钥是字符串,那么您仍然必须使用"哈希火箭"语法:{'你好' => '世界'}

http://ruby-doc.org/core-2.2.0/Hash.html