关于使用"冒号"的Ruby混淆

use*_*030 1 ruby syntax

你好,我是红宝石新手:)我正在寻找一个解释,以理解在其语法中使用':'.

例如:

test "should create product" do
   assert_difference('Product.count') do
   post :create, product: @update
  end
end
Run Code Online (Sandbox Code Playgroud)

我们什么时候做:something,而不是有something:什么区别.如果这是可谷歌的,请给我一些关于谷歌关于这个主题的关键字的一些指示.到目前为止,Ruby Colon的变化产生了许多无关的结果.

小智 6

在这种情况下,您post使用两个参数调用该函数,第一个参数是符号:create,第二个参数是带有键:product和值的哈希@update.

这一行可以重写如下:

post(:create, {:product => @update})
Run Code Online (Sandbox Code Playgroud)

这种key: value风格是在Ruby 1.9中引入的.