如何通过与 has_many 的关联来排序记录
How to order records by associaction with has_many
我有两个表,作者和书籍,书籍有出版日期,我想按作者最后一本书出版的日期排序,我正在这样做 includes(:books).where(blablabla).order('books.published_date DESC')
但它打破了 kaminari 的分页(每页 8 条记录,要显示 9 条),我在第一页上得到正确的记录,但在第二页上我从第一页得到前两条记录加上正确的记录。
试试这个:-
Author.includes(:books).where(blablabla).order('books.published_date DESC')
更新 1:-
@authors = Author.includes(:books).where(blablabla).order('books.published_date DESC')
@authors = @authors.page(params[:page)
希望这对您有所帮助!!
您可能想看看 Yap. You can define an alias for books.published_date
and sort by that alias. See the example。
User.joins(:team).paginate(sort: {team: :asc}) # would sort by team.name
如果您还需要访问它的任何属性以使用预先加载,请使用 .includes(:team)
。
我有两个表,作者和书籍,书籍有出版日期,我想按作者最后一本书出版的日期排序,我正在这样做 includes(:books).where(blablabla).order('books.published_date DESC')
但它打破了 kaminari 的分页(每页 8 条记录,要显示 9 条),我在第一页上得到正确的记录,但在第二页上我从第一页得到前两条记录加上正确的记录。
试试这个:-
Author.includes(:books).where(blablabla).order('books.published_date DESC')
更新 1:-
@authors = Author.includes(:books).where(blablabla).order('books.published_date DESC')
@authors = @authors.page(params[:page)
希望这对您有所帮助!!
您可能想看看 Yap. You can define an alias for books.published_date
and sort by that alias. See the example。
User.joins(:team).paginate(sort: {team: :asc}) # would sort by team.name
如果您还需要访问它的任何属性以使用预先加载,请使用 .includes(:team)
。