搜索函数参数数量错误(2 为 1)
Search function wrong number of argument (2 for 1)
我正在尝试实现一个简单的搜索功能,它会触发一些参数错误。这里
我的观点
<%= form_tag(clients_path, :method => "get", id: "search-form") do %>
<%= text_field_tag :search, params[:search], placeholder: "Search Clients" %>
<%= submit_tag "Search", :name => nil %>
<% end %>
我控制器中的方法
def index
if current_user.admin?
if params[:search]
@clients = Client.search(params[:search], load:true).result
else
@clients = Client.all.paginate(:per_page => 3, :page => params[:page])
end
else
@clients = current_user.clients
end
end
我的模型
def self.search(query)
where("name like ?","%#{query}%")
end
我收到错误消息 "wrong number of arguments (2 for 1)"。我看不到传递给模型的另一个参数是什么。一双新鲜的眼睛会有所帮助。谢谢
您的 search
方法只允许一个参数:
def self.search(query)
where("name like ?","%#{query}%")
end
但是你试图将它与 2 一起使用:
@clients = Client.search(params[:search], load:true).result
# ^^^^^^^^^^^ second argument
实际上你传递了两个参数。
@clients = Client.search(params[:search], load:true).result
但是在模型中你只需要一个参数。
def self.search(query)
where("name like ?","%#{query}%")
end
您必须在模型方法中访问 load:true。
def self.search(query, load)
where("name like ?","%#{query}%")
end
或根据您的要求。
我正在尝试实现一个简单的搜索功能,它会触发一些参数错误。这里 我的观点
<%= form_tag(clients_path, :method => "get", id: "search-form") do %>
<%= text_field_tag :search, params[:search], placeholder: "Search Clients" %>
<%= submit_tag "Search", :name => nil %>
<% end %>
我控制器中的方法
def index
if current_user.admin?
if params[:search]
@clients = Client.search(params[:search], load:true).result
else
@clients = Client.all.paginate(:per_page => 3, :page => params[:page])
end
else
@clients = current_user.clients
end
end
我的模型
def self.search(query)
where("name like ?","%#{query}%")
end
我收到错误消息 "wrong number of arguments (2 for 1)"。我看不到传递给模型的另一个参数是什么。一双新鲜的眼睛会有所帮助。谢谢
您的 search
方法只允许一个参数:
def self.search(query)
where("name like ?","%#{query}%")
end
但是你试图将它与 2 一起使用:
@clients = Client.search(params[:search], load:true).result
# ^^^^^^^^^^^ second argument
实际上你传递了两个参数。
@clients = Client.search(params[:search], load:true).result
但是在模型中你只需要一个参数。
def self.search(query)
where("name like ?","%#{query}%")
end
您必须在模型方法中访问 load:true。
def self.search(query, load)
where("name like ?","%#{query}%")
end
或根据您的要求。