如下: 直接查询的话是这样: @article = Article.paginate(:page => params[:page], :per_page => 5).reorder(created_at: :desc) 页面上写 = will_paginate @article, renderer: BootstrapPagination::Rails 那么我要根据分类表的 ID 查询所得的文章该如何分页? @category = Category.find(params[:id])
在线等
join?
#2 楼 @smallX 看我的代码,我用的是 will_paginate,不是自己写分页
要根据 category 的 id 来对@article进行排列?
#4 楼 @kai209209 对的!!!
顺便问下有什么文本 gem?用 text_area 的话排版不正常,文本都不换行
#5 楼 @a4652097 你这 Category has_many Article? 是的话看下面 如果只是简单的 category_id 排列
@article = Article.paginate(:page => params[:page], :per_page => 5).reorder(category_id: :desc)
如果是要根据搜索出来的 category 的 id 进行排列就下面这样
@articles = Article.all @articles = @articles.joins(:category).where("categories.id = ?",params[:id] ) @articles = @articles.paginate(:page => params[:page], :per_page => 5).reorder(created_at: :desc)
def index if params[:category].blank? @articles = Article.order("created_at DESC").page(params[:page]).per_page(5) else @category_id = Category.find_by(name: params[:category]).id @articles = Article.where(category_id: @category_id).order("created_at DESC").page(params[:page]).per_page(5) end end
虽然这个问题很久了,我初学也碰到这个问题,找到了一个解决办法,亲测有效。代码如上。(适合 Category has_many Article 情况) 思路是:在 index 里做判断,然后把 if 的情况和 else 的情况里都添加上 will_paginate 的代码。