繁体   English   中英

Ruby on Rails:=>符号是什么意思?

[英]Ruby on Rails: what does the => symbol mean?

我正在通过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 %>

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

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

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

{key1 => value1, key2 => value2}

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

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

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

您的第一个函数调用是一个快捷方式

map.connect('/marmots/new', {:controller=>'marmots', :action=>'new'})

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM