使用finders查询Rails 3中引用的模型?

时间:2011-06-06 12:18:20

标签: ruby-on-rails-3 activerecord

我有一个名为Person的模型has_one AddressPerson包含first_namelast_name等字段; Addresspostal_codestate等等。

我知道如何使用发现者查找具有特定名称的所有人;那是Person.find_by_last_name("Smith")。但我怎样才能找到所有人:

  • 他们的first_name是“Bob”;和
  • 他们的last_name是“史密斯”;和
  • 谁拥有'Foobar'城市的地址;和
  • 谁拥有邮政编码为'12345'的地址

1 个答案:

答案 0 :(得分:1)

当您要查找确切的值时,您可以将要匹配的值的哈希值传递给where。每个引用的模型都是自己的嵌套哈希,如下例所示:

Person.
  where(:first_name => 'Bob').
  where(:last_name => 'Smith').
  where(:address => { :postal_code => '12345' }).   # queries associated Address
  where(:address => { :city => 'Foobar' })          # queries associated Address