映射两个数组......现在......我可以映射三个吗?

时间:2011-06-26 18:04:22

标签: ruby-on-rails-3 map

此映射有效:

@fbc = FbComments.where("reviewee_id = ?", current_user.id)
@users = User.order("last_name")
@fb_comments = @fbc.map! { |fb| [fb, @users.find_by_id(fb.user_id)] }

因此映射了两个数组...一个带有注释,另一个带有发表注释的人的用户数据。但我还需要用户的个人资料图片数据。我是否更改原始映射方法以某种方式包含第三个数组(例如@fbc + @users + @pictures),或者我是否必须映射前两个映射结果的另一个数组(例如@fb_comments + @pictures)?

个人资料图片(如评论)的user_id与发表评论的用户的ID相匹配。

感谢。

1 个答案:

答案 0 :(得分:2)

我不确定你为什么这样做。为什么不使用连接(.includes)来获取一个查询中的所有内容?

@fbc = FbComments.where("reviewee_id = ?", current_user.id).includes(:user => :picture)

@fbc.first.user         # => The first user in the results
@fbc.first.user.picture # => The first user's picture

(我在这里假设个人资料图片数据是自己的名为Picture的模型。如有必要,请将其更改为适合您的应用。)

查看the documentation并向下滚动到“渴望加载关联。”