Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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
Ruby on rails 按数组索引查询顺序的Rails_Ruby On Rails_Ruby_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 按数组索引查询顺序的Rails

Ruby on rails 按数组索引查询顺序的Rails,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,我正在试图找到一种方法,可以按该数组中的索引对以下查询排序 @books_sorted.map(&:id) => ["31f1d544-4ce5-4bcd-89fd-8a76e4c052fe", "1ccaab81-9443-40b6-9f0e-06b799377d9e", "622ebbdf-4eb9-4b2e-879a-5d93c0bdfb29", "1e255968-6094-4bdb-90de-9c0922a0ad4e", "14d08406-3136-48e4-8

我正在试图找到一种方法,可以按该数组中的索引对以下查询排序

@books_sorted.map(&:id) => ["31f1d544-4ce5-4bcd-89fd-8a76e4c052fe",
 "1ccaab81-9443-40b6-9f0e-06b799377d9e",
 "622ebbdf-4eb9-4b2e-879a-5d93c0bdfb29",
 "1e255968-6094-4bdb-90de-9c0922a0ad4e",
 "14d08406-3136-48e4-84c9-314a652ccf34"]

@books = @books.where("books.id in (?)", @books_sorted.map(&:id)) if @books_sorted.any?
这应该行得通

@books_sorted.collect {|book| @books.detect{|x| x.id == book.id}} if @books_sorted.any?
请注意:这不是一个有效的解决方案,因为我们使用ruby而不是数据库查询进行排序。 希望有帮助:)

这应该行得通

@books_sorted.collect {|book| @books.detect{|x| x.id == book.id}} if @books_sorted.any?
请注意:这不是一个有效的解决方案,因为我们使用ruby而不是数据库查询进行排序。
希望有帮助:)

你在使用MySql吗?我猜,他指的是
map
PG-是的,我指的是map。对不起,你在用MySql吗?我猜,他指的是
map
PG-是的,我指的是map。对不起,非常感谢。这被认为是一个N+1查询吗?我很高兴它有帮助。我不认为这是N+1查询。当存在一对多关系时,会发生N+1查询。等一下,我将尝试找到一个好的例子。这个问题的公认答案是:用car及其车轮的例子很好地演示了N+1查询。好吧,再看一看。即使没有一对多的关系。现在看来是N+1。因为1个查询用于获取
@书籍
,N个查询用于以正确的顺序获取书籍。但我不是这方面的专家,我不能评论它是否符合N+1。非常感谢。这被认为是一个N+1查询吗?我很高兴它有帮助。我不认为这是N+1查询。当存在一对多关系时,会发生N+1查询。等一下,我将尝试找到一个好的例子。这个问题的公认答案是:用car及其车轮的例子很好地演示了N+1查询。好吧,再看一看。即使没有一对多的关系。现在看来是N+1。因为1个查询用于获取
@书籍
,N个查询用于以正确的顺序获取书籍。但我不是这方面的专家,我不能评论它是否符合N+1的条件。