Ruby on Rails:=>象征意味着?

时间:2009-06-09 12:54:47

标签: ruby-on-rails

我正在通过Head First Rails工作,我一直看到=>。它在路线中:

map.connect '/marmots/new', controller=>'marmots', :action=>'new'

这是在渲染部分内容:

render :partial=>"new_marmot"

这是链接的选项:

<%= link_to 'Destroy', marmot, :confirm=>'Are you sure?', :method=>:delete %>

基本上,=>似乎意味着'等于',但如果是这样,为什么不使用等号呢?它更像是'发送到?'

你怎么发音=&gt;你明白这是什么意思?我可以在不知情的情况下过去,但这会让我感到烦恼。

2 个答案:

答案 0 :(得分:19)

我听说它通常被称为“哈希火箭”。它是与ruby中的哈希一起使用的赋值运算符。因此,如果您有一个哈希并想要为键(通常是文字)分配值,请使用

{key1 => value1, key2 => value2}

Rails和其他Ruby代码经常将哈希作为参数传递给方法,以实现与其他语言(如Python)中的命名参数相同的效果。

object.method({:param1 => value1, :param2 => value2})

编辑:阅读时,我使用“获取”作为动词,例如。 param1得到value1等等。

答案 1 :(得分:9)

您的第一个函数调用是

的快捷方式
map.connect('/marmots/new', {:controller=>'marmots', :action=>'new'})

其中{}是Hash-literal。对象映射的方法connect的第二个参数是Hash类的对象,它有两个键:controller和:action(两者都是Symbol类的文字),其对应的值是两个字符串'marmots'和'new'。

编辑:我称之为“箭头”或“映射到”。