2011-10-25 168 views
1

我得到腳手架生成的驗證碼奇怪的Ruby語法錯誤

assert_difference('Day.count') do 
    post :create, day: @day.attributes 
end 

你看到了什麼?這不是:day => @day.attributes,它是day: @day.attributes。我的兩個開發環境之一不抱怨,另一個抱怨,生產不抱怨。我瘋了嗎?

回答

0

這只是新的紅寶石1.9語法。你可以跟蹤在eigenclass.org ruby​​語法修改:-)

編輯:這似乎是以某種方式畸形。有趣。

0

這是較新的ruby 1.9哈希語法。就我個人而言,我從未做過轉換。好的舊箭對我來說很好。你的一個環境顯然不支持它。

2

我期望你的一個環境使用Ruby 1.9.2,而一個環境使用的是舊版本的Ruby。

你看到的是一種named parameters(有時稱爲「關鍵字參數」)的形式,它提供了幾乎提供命名參數的舊式哈希機制周圍的語法糖。