Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 获取rails ActiveRecord而不是多个查询的对象数组_Mysql_Sql_Ruby On Rails_Ruby_Activerecord - Fatal编程技术网

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

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

我有一个表,用于存储返回用户列表的查询。 然后,我有一个方法“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)
  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之间的“逻辑和”。