在将带有参数的范围应用于模型时使用 will_paginate
Using will_paginate while applying a scope with params to the Model
我正在尝试创建一个可用于按用户名搜索用户的搜索框。我遇到的问题 运行 是我也想使用 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 < ActiveRecord::Base
scope :name, -> (name) { where("name ILIKE ?", "%#{name}%")}
end
users/index.html.erb
<%= form_tag users_path, method: :get do %>
<%= text_field_tag :name, params[:name], :placeholder => "Search by name" %>
<%= submit_tag "Search"%>
<% end %>
您的控制器文件的第一行中有一个 space。超级 class 里面有一个 space "Application Controller"
这会导致 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
我正在尝试创建一个可用于按用户名搜索用户的搜索框。我遇到的问题 运行 是我也想使用 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 < ActiveRecord::Base
scope :name, -> (name) { where("name ILIKE ?", "%#{name}%")}
end
users/index.html.erb
<%= form_tag users_path, method: :get do %>
<%= text_field_tag :name, params[:name], :placeholder => "Search by name" %>
<%= submit_tag "Search"%>
<% end %>
您的控制器文件的第一行中有一个 space。超级 class 里面有一个 space "Application Controller"
这会导致 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