导轨大量使用哈希...需要说明

用户名

我两个月前开始使用Rails,我仍然喜欢它,但是有一个巨大的问题。这是关于在轨形式中大量使用哈希的。

有很多方法可以做到这一点,我已经看到很多依赖于哈希的示例,但这始终是另一种语法。

有些人这样写

:foo => :bar
foo: :bar
"foo" => "bar"

我总是把它们混在一起,并得到很多语法错误,有人可以向我解释正确的方法吗?

这是一个符号:foo,就像是"foo"对的吗?

另外:如果我有一个form_tag(@something),为什么要访问html元素,为什么必须用方括号括起来?喜欢form_tag(@something, :html => {:foo => :bar})

有人可以解释吗?

谢谢

脚步声

哈希火箭=>是建立哈希的原始方法。在Ruby的更高版本中,对于键是符号的情况,他们引入了类似JSON的基于冒号的语法。因此:foo => :barfoo: :bar它们是等价的(正如David在上面的注释中指出的那样,您在问题中将冒号放在了“ foo”的错误一侧。)

使用=>仍然是为某些类型的键定义哈希的唯一方法(请参阅:是否已弃用Hash Rocket?)。因此,当您刚入门时,最好坚持一遍,=>直到您对差异有所了解。

当您刚接触Rails时,可能会引起混乱的另一件事是ActiveSupport提供了一个称为的对象HashWithIndifferentAccess该对象:foo"foo"视为等效的键。常规RubyHash对象不是这种情况因此,请检查您要处理的对象的类。

:html选项放在方括号中的原因是因为这是一个嵌套的哈希,使某人可以轻松地定义类似的方法form_for并允许多个多值输入。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章