未定义的方法`total_pages'对于#tuto :: activerecord_relation:0x007fc3b2473d80>

时间:2017-04-07 14:26:39

标签: ruby-on-rails ruby ruby-on-rails-4 kaminari

我发现了几个类似的案例,但没有解决我的问题......

我正在使用gem Kaminari对我的应用程序进行分页。

由于我添加了它,研究失败并重新发出此错误undefined method total_pages' for #<Tuto::ActiveRecord_Relation:0x007fc3b2473d80>

我的 tutos控制器中有一个私有方法来过滤我的 tutos

 def filter_tutos
  return if params[:query].blank?
  @tutos = Tuto.search(params[:query][:keyword]).includes(:user, :category) if params[:query][:keyword].present?
  @tutos = Tuto.joins(:user).where('users.nickname LIKE ?', params[:query][:user]) if params[:query][:user].present?
  @tutos = Tuto.joins(:category).where('categories.name LIKE ?', params[:query][:category]) if params[:query][:category].present?
 end
tutos控制器中的

索引方法:

  def index
    filter_tutos if params[:query].present?
    @tutos ||= Tuto.all.page params[:page]
  end

在我看来,我有:

  .pagination
      = paginate @tutos

我在tuto模型中添加了paginates_per 5

1 个答案:

答案 0 :(得分:0)

试试这个。 @tutos不调用分页。如果它是空白,那么所有Tuto对象都是分页的,但不是。

  def index
    filter_tutos if params[:query].present?
    @tutos = @tutos.count > 0 ? @tutos : Tuto.all
    @tutos = @tutos.page params[:page]
  end