Active Record语法解释 - 初学者

时间:2011-11-15 19:37:20

标签: ruby-on-rails ruby

我正在努力学习ruby / rails - 我正在阅读的这本书倾向于跳过一些新的语法。特别是这一点;

person = Person.find(:first, :conditions => ["name = ?", "Mikey"])

据我所知,这个方法将一个符号作为它的第一个参数,看起来像一个带有符号/数组键/值的单项哈希。这是正确的吗?如果是这样,为什么我突然能够在此上下文中指定没有花括号{}的散列?

1 个答案:

答案 0 :(得分:4)

在Ruby方法参数中,在正常参数之后但在块之前放置的任何key =>值对都捆绑在一个哈希中。所以,如果你打电话

my_method("hello", :something=>"yo!", :another_thing=>"bah!")

这意味着my_method正在传递两个参数,一个字符串(“hello”)和一个哈希({:something =>“哟!”,:another_thing =>“bah!”} )。

除其他原因外,这可以防止指示哈希参数的花括号和表示块的花括号之间的混淆。它还可以方便地模拟“命名参数”,否则Ruby中不存在。