使用 will_paginate 对列进行二次排序
Secondary sorting of a column using will_paginate
Rails 6
will_paginate
在我的模型中,我有以下内容:
def index
@books = Book.all.paginate page: params[:page], per_page: params[:per_page]
end
这将给我一个对象数组,每个对象都具有以下属性:
name
author_id
所以,在我看来,我可以做到以下几点:
th= sortable "name", "Name"
th= sortable "author_id", "Author ID"
但我真正想做的是显示作者姓名,我可以从书对象中获取,如下所示:
book.author.name
因为这本书属于作者
如何在 table 中添加一列作者姓名,并使该列排序 table?
你试过这样的东西吗?
controllers/books_controller.rb
def index
books_with_author = Book.all.map { |book|
book.attributes.merge(author_name: book.author.name)
}
@books = books_with_author.paginate page: params[:page], per_page: params[:per_page]
end
您也可以定义您的模型以备将来使用
models/book.rb
def author_name
self.author.name
end
Rails 6
will_paginate
在我的模型中,我有以下内容:
def index
@books = Book.all.paginate page: params[:page], per_page: params[:per_page]
end
这将给我一个对象数组,每个对象都具有以下属性:
name
author_id
所以,在我看来,我可以做到以下几点:
th= sortable "name", "Name"
th= sortable "author_id", "Author ID"
但我真正想做的是显示作者姓名,我可以从书对象中获取,如下所示:
book.author.name
因为这本书属于作者
如何在 table 中添加一列作者姓名,并使该列排序 table?
你试过这样的东西吗?
controllers/books_controller.rb
def index
books_with_author = Book.all.map { |book|
book.attributes.merge(author_name: book.author.name)
}
@books = books_with_author.paginate page: params[:page], per_page: params[:per_page]
end
您也可以定义您的模型以备将来使用
models/book.rb
def author_name
self.author.name
end