Rails 3.从不同的表中获取多个东西

时间:2011-04-29 14:19:12

标签: ruby-on-rails-3

我正在使用Ruby on Rails 3开发一个API,在这个API中我得到了用户和用户可以成为朋友。这是通过联系人处理的。当用户“询问”他或她的所有联系人时,我创建了一个数组,该数组获取每个用户的ID并获取他们的User对象,以便我可以获得联系人的真实姓名,而不仅仅是联系人ID。

这很好,但我也需要联系人的ID,以便我可以删除我正在开发的iPhone应用程序中的联系人。我怎样才能做到这一点?如何修改以下代码以获取每个用户和用户对象的联系人ID?

http://pastie.org/1847350

更新

当前的JSON输出是pastie.org/1848590。 我希望联系人ID是主用户对象数组的子数组。就像现在的最新消息一样。

感谢所有输入!

1 个答案:

答案 0 :(得分:1)

联系人也是用户,我认为您只需要创建一个用户模型并添加与class_name的自我关联:“contact”,这种关系将是一个用户has_many联系人的一对多关系。

 has_many :contacts, class: "contacts", foreign_key: "contact_id"      

这是

的演员表
http://railscasts.com/episodes/163-self-referential-association

关联后,您只需找到该用户,然后只需

@users.collect{|user| user.contacts }

返回我认为可能对您有所帮助的联系人列表。

干杯