Rails,其中查询按数组索引排序

时间:2016-07-16 18:37:45

标签: 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-84c9-314a652ccf34"]

@books = @books.where("books.id in (?)", @books_sorted.map(&:id)) if @books_sorted.any?

1 个答案:

答案 0 :(得分:0)

这应该有用。

@books_sorted.collect {|book| @books.detect{|x| x.id == book.id}} if @books_sorted.any?

请注意:这不是一个有效的解决方案,因为我们在ruby而不是数据库查询中进行排序。 希望它有所帮助:)