从RoR查询输出生成哈希数组?

时间:2012-10-01 22:59:47

标签: ruby-on-rails

这里的Rails新手。假设我有两个表,Owners(owner_id,name)和Cats(cat_id,cname)。它们通过一对多的关系联系在一起,所有者可以拥有许多猫,但猫只能拥有一个所有者。给定owner_id的输入,我想检索该所有者拥有的每只猫的猫名称和id,并将其存储为哈希数组(即[{:cat_id => 1,cname =>“cat1”} ,{:cat_id => 2,cname =“cat2”}]。

到目前为止,我有类似output = [Owner.find(owner_id).join(:Cats)]但我不确定如何完成该语句。非常感谢你。

2 个答案:

答案 0 :(得分:1)

Owner.find(owner_id).cats会给你你想要的东西。

答案 1 :(得分:1)

试试这个:

Cat.all(:conditions => ['owner_id = ?', owner_id])

或者:

Owner.find(owner_id).cats

假设您的所有者模型中有has_many :cats。如果您需要哈希列表而不是活动记录对象,则可以使用.collect转换您的设置。