首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >迭代activerecord::relation数组

迭代activerecord::relation数组
EN

Stack Overflow用户
提问于 2012-09-18 00:16:20
回答 3查看 7.4K关注 0票数 2

如何遍历Activerecord::Relation对象的数组?例如,假设我有一个Comment类和一个User类,我想要获取来自3个特定用户的所有评论内容(假设评论属于用户,user_id是外键):

代码语言:javascript
复制
>> @males = Comment.where('user_id IN (?)', ["123","456","789"])
=> [...] #Array of comment Activerecord::Relation objects

现在,我要遍历comments_from_males并收集数组中每个注释的所有content属性内容。

为了澄清,以下工作,但只为第一个男性返回,但我需要所有的评论,为所有男性:

代码语言:javascript
复制
>> @males.first.comments.map(&:content)
=> ["first comment", "second comment"]
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-09-18 00:22:20

代码语言:javascript
复制
comments = @males.map {|user| user.comments.map(&:content)}.flatten
票数 7
EN

Stack Overflow用户

发布于 2012-09-18 00:21:53

您可以使用

代码语言:javascript
复制
comments_from_males = @males.collect{|e| e.content if e.gender == "male"}.flatten

它会给你所有男性评论的列表。检查我的数据库假设是否匹配。

票数 1
EN

Stack Overflow用户

发布于 2012-09-18 00:31:57

代码语言:javascript
复制
Comment.where('user_id IN (?)', ["123","456","789"]).pluck(:content)

pluck方法

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12463254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档