Ruby on rails 使用will_paginate对列进行二次排序

Ruby on rails 使用will_paginate对列进行二次排序,ruby-on-rails,will-paginate,Ruby On Rails,Will Paginate,在我的模型中,我有以下内容: Rails 6 will_paginate name author_id 这将给我一个对象数组,每个对象都具有以下属性: def index @books = Book.all.paginate page: params[:page], per_page: params[:per_page] end 因此,在我看来,我可以做到以下几点: Rails 6 will_paginate name author_id 但我真正想做的是显示作者姓名,我可以从bo

在我的模型中,我有以下内容:

Rails 6
will_paginate
name
author_id
这将给我一个对象数组,每个对象都具有以下属性:

def index
  @books = Book.all.paginate page: params[:page], per_page: params[:per_page]
end
因此,在我看来,我可以做到以下几点:

Rails 6
will_paginate
name
author_id
但我真正想做的是显示作者姓名,我可以从book对象中获得,如下所示:

th= sortable "name", "Name"
th= sortable "author_id", "Author ID"
因为这本书属于作者


如何在表中设置一列作者姓名,并使该列可排序?

您尝试过类似的方法吗

控制器/书籍\u controller.rb

def索引
books_with_author=Book.all.map{| Book|
book.attributes.merge(作者名称:book.author.name)
}
@books=带有作者的图书。分页:参数[:page],每页:参数[:每页]
终止
此外,您还可以定义模型以供将来使用

models/book.rb

def author\u name
self.author.name
终止

我喜欢第二个建议