在将具有参数的范围应用于模型时使用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