奇怪的ruby语法错误

时间:2011-10-25 00:38:47

标签: ruby-on-rails

我为脚手架生成了这段代码:

assert_difference('Day.count') do
  post :create, day: @day.attributes
end
你知道吗?它不是:day => @day.attributes,而是day: @day.attributes。我的两个开发环境中的一个没有抱怨,另一个抱怨,生产不抱怨。我疯了吗?

3 个答案:

答案 0 :(得分:2)

我希望你的一个环境使用Ruby 1.9.2,而一个环境是旧版本的Ruby。

您所看到的是named parameters(有时称为“关键字参数”)的一种形式,它提供了几乎提供命名参数的旧哈希机制的语法糖。

答案 1 :(得分:0)

这是更新的ruby 1.9哈希语法。就个人而言,我从来没有做过转换。好老箭对我很好。你的一个环境显然不支持它。

答案 2 :(得分:0)

这只是新的ruby 1.9语法。您可以在eigenclass.org跟踪ruby语法更改: - )

编辑:这似乎有点格格不入。有趣。