Mysql 获取rails ActiveRecord而不是多个查询的对象数组
我有一个表,用于存储返回用户列表的查询。 然后,我有一个方法“get_public”到一个“香蕉”模型,该模型使用逻辑和它们之间的关系执行多个查询 所以,当我这么做的时候Mysql 获取rails ActiveRecord而不是多个查询的对象数组,mysql,sql,ruby-on-rails,ruby,activerecord,Mysql,Sql,Ruby On Rails,Ruby,Activerecord,我有一个表,用于存储返回用户列表的查询。 然后,我有一个方法“get_public”到一个“香蕉”模型,该模型使用逻辑和它们之间的关系执行多个查询 所以,当我这么做的时候 Banana.find(x).get_public我收到一个用户数组(适用于该Banana对象的用户) get_public方法如下所示: def get_public pb = [] banana_queries.each do |q| pb << User.find_by_sql(q.query
Banana.find(x).get_public
我收到一个用户数组(适用于该Banana对象的用户)
get_public方法如下所示:
def get_public
pb = []
banana_queries.each do |q|
pb << User.find_by_sql(q.query)
end
pb.inject(:'&')
end
pb << User.joins(q.query_joins).where(q.query_where)
def get_public
pb=[]
香蕉|每个都做| q|
pb我不确定我是否正确理解了这个问题,但无论如何我都会尽力帮助你
特别
- 其中返回ActiveRecord::关系
- find(及其相关的动态方法)返回单个模型对象
因此,我建议将查询分为“连接”和“位置”字段。您的新代码应该如下所示:
def get_public
pb = []
banana_queries.each do |q|
pb << User.find_by_sql(q.query)
end
pb.inject(:'&')
end
pb << User.joins(q.query_joins).where(q.query_where)
pb您是否尝试过在类中包含ActiveRecord::QueryMethods
以获取关系查询方法?在这种情况下,pb.inject(:'&')
应该做什么?您测试过它的行为吗?它是数组的iten之间的“逻辑和”。