2015-06-05 38 views
2

我有兩臺主要用於開發我的Rails應用程序的計算機。在計算機1上工作時,我爲某些輸入添加了一些引導程序元素。例如:Rails 4.2語法錯誤,意外的':',期待=>

= 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(作品)

紅寶石2.2.0p0

的Rails 4.2.0

電腦2(不工作)

紅寶石2.2.0preview1

的Rails 4.2。 0

回答

2

「較新」的語法僅適用於符號。

{hello: 'world'}相當於{:hello => 'world'}但如果你的鍵是一個字符串,那麼你仍然必須使用「散列火箭」的語法:{「你好」 =>「世界」}

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

+1

在Ruby 2.2'{'s':...}'是有效的,並且會給你一個':s'的鍵。引用符號需要2.2之前的hashrocket和前導符。 –

+0

我錯誤地認爲我的ruby 2.1.5安裝仍然相關。謝謝@ muistooshort – AndrewH

7

您需要將計算機2升級到真正的Ruby 2.2.0,而不是這個測試版的「預覽」版本。使用帶引號的符號與JavaScript的風格尾隨冒號語法:

{ 'some string': value } 

無效的Ruby 2.2的版本2.2.0preview1你有電腦2顯然不支持它。


BTW,沒有語法,還有一個備用的JavaScript風格的符號,可以是使用時的哈希字面鍵是一些符號。無論誰告訴你,廢船已被廢棄,充其量是困惑的。

相關問題