繁体   English   中英

获取Rails ActiveRecord而不是多个查询的对象数组

[英]Get rails ActiveRecord instead of Array of objects for multiple queries

我有一个表,用于存储返回用户列表的查询。 然后,我有一个“香蕉”模型的方法“ get_public”,可以使用它们之间的逻辑与执行多个查询。

所以,当我这样做

Banana.find(x).get_public我收到了一个用户数组(适用于该香蕉对象的用户)。

get_public方法是这样的:

def get_public
  pb = []
  banana_queries.each do |q|
    pb << User.find_by_sql(q.query)
  end
  pb.inject(:'&')
end

但是,如果我能获得ActiveRecord :: Relation会很棒。 我想在以后做这样的事情: Banana.find(x).get_public.where(...)方法可以修改get_public并实现它?

我不确定我是否正确地解决了这个问题,但是无论如何我都会尽力帮助。

如此处指定

  • 其中返回一个ActiveRecord :: Relation
  • find(及其相关的动态方法)返回单个模型对象

因此,我建议将您的查询分为:“ joins”和“ where”字段。 您的新代码应如下所示:

 pb << User.joins(q.query_joins).where(q.query_where)

在轨4中,不推荐使用find方法,因此建议使用where。

希望我不要错过太多的重点了:-)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM