Ruby on rails Rails包括,但不按ID排序

Ruby on rails Rails包括,但不按ID排序,ruby-on-rails,Ruby On Rails,我的控制器中有一个简单的include语句,但是默认情况下,include表的顺序是id。 在我的例子中,我需要以与接收uuid相同的方式对元素进行排序 查询: compare_uuids = {xyz, ytb, tyd} @books = Book.where(uuid: compare_uuids).includes(:venue, :related_publisher, :related_author) 上面的表达式响应良好,但假设uuid与其id的顺序如下: id uuid

我的控制器中有一个简单的include语句,但是默认情况下,include表的顺序是id。 在我的例子中,我需要以与接收uuid相同的方式对元素进行排序

查询:

compare_uuids = {xyz, ytb, tyd}
@books = Book.where(uuid: compare_uuids).includes(:venue, :related_publisher, :related_author) 
上面的表达式响应良好,但假设uuid与其id的顺序如下:

id     uuid
5      xyz
1      ytb
2      tyd
当语句按id顺序运行时组成的表达式。因此uuid顺序丢失。 有什么办法吗。

试试这个

has_many :books, :order => 'priority DESC'
在Rails4中,这种方法现在已被弃用,新的方法是

has_many :books, -> { order(:priority => :desc) }
获取输出:

你可以试试

Authors.books.except(:order).order('priority DESC')
# OR
Authors.books.reorder('priority DESC')

我在Book.rb模型中添加了上述行。。。但事实并非如此working@SyedAsadAbbasZaidi你检查了吗?