Rails将两个对象组合成一个结果哈希

时间:2012-04-24 15:45:21

标签: ruby-on-rails-3 activerecord

我在Rails中有以下模型: Users 和* Friendship_Requests * friendship_requests在“from_user”和“to_user”字段中包含用户ID。我想从请求模型(也包含消息字段)获取链接到特定用户的请求列表。我还希望结果返回用户模型中保存的请求用户数据。

在SQL中我会使用以下内容:

SELECT users.*, friendships_requests.*
FROM friendships_requests
JOIN users ON friendships_requests.from_user = users.id

任何想法都表示赞赏,谢谢。

1 个答案:

答案 0 :(得分:2)

查找发送到@user的友情请求:

@friendship_requests = FriendshipRequests.find_by_to_user(@user.id)

然后可以检索与发送用户相关的信息:

@friendship_requests.each do |request|
  user = User.find_by_id request.from_user
  # Do something
end

或者,如果你想收集所有这些

@users = @friendship_requests.map {|r| User.find_by_id r.from_user}