新手问题 请问根据另一张表的 ID 查询这张表的数据该如何分页

a4652097 · 2014年09月19日 · 最后由 zhangst23 回复于 2016年01月09日 · 2343 次阅读

如下: 直接查询的话是这样: @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])

共收到 8 条回复

在线等

#2 楼 @smallX 看我的代码,我用的是 will_paginate,不是自己写分页

要根据 category 的 id 来对@article进行排列?

顺便问下有什么文本 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 的代码。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册