呼叫局部的方式有何不同?

Tay*_*ton 1 ruby-on-rails

我假设这也适用于其他事情,但这是我在迄今为止经历过的教程中最多注意到的地方.基本上,有什么区别:

<%= render :partial => "shared/warning" %>
Run Code Online (Sandbox Code Playgroud)

<%= render partial: "shared/warning" %>
Run Code Online (Sandbox Code Playgroud)

sma*_*thy 6

Hashruby中文字的语法是:

{ key => value }
Run Code Online (Sandbox Code Playgroud)

key可以是任何对象,包括Symbol,例如.

{ :foo => "bar" }
Run Code Online (Sandbox Code Playgroud)

使用散列中的键的符号变得如此受欢迎,并且在ruby中非常惯用,在ruby 1.9中为使用符号键创建的散列添加了可选语法,并且从下面的内容完全等同于上面的内容:

{ foo: "bar" }
Run Code Online (Sandbox Code Playgroud)

更新

根据您的特定用例,ruby还允许您{}在将Hash参数作为参数传递给方法时删除s (以及能够删除()s),因此以下内容是等效的:

foobar( { foo: "bar" } )
foobar( foo: "bar" )
foobar foo: "bar"
foobar :foo => "bar"
Run Code Online (Sandbox Code Playgroud)