在将具有参数的范围应用于模型时使用will_paginate

我正在尝试创建一个搜索框,可用于按名称搜索用户。 我遇到的问题是我也想使用will_paginate gem。 这行代码@users = User.name(params[:name]).paginate(page: params[:page]) if params[:name].present? 是我认为问题所在。

 class UsersController < ApplicationController def index @users = User.all.paginate(page: params[:page]) @users = User.name(params[:name]).paginate(page: params[:page]) if params[:name].present? end class User  (name) { where("name ILIKE ?", "%#{name}%")} end users/index.html.erb   "Search by name" %>   

您的控制器文件中有一个空格。 超类在其中有一个空间“应用程序控制器”

这将导致Heroku上的启动时间H10错误。

:name不能用作范围。 当我将其更改为:namesearch代码工作。

 class User < ActiveRecord::Base scope :nameseach, -> (name) { where("name ILIKE ?", "%#{name}%")} end def index @users = User.all.paginate(page: params[:page]) @users = User.namesearch(params[:name]).paginate(page: params[:page]) if params[:name].present? end