我正在尝试在我的 rails 应用程序中创建一个搜索表单。我已经查找了各种解决方案,但它们对我来说毫无意义。
当我通过我的 rails 应用程序中的表单运行搜索时,我收到以下错误。现在我关心的(除了错误)是我的索引操作中的实例变量@computers。我很确定这不是正确完成搜索的“轨道方式”,并且希望得到一些建议。
错误
undefined method `%' for #<Array:0x5780460>
搜索后的参数
http://localhost:3000/computers?utf8=%E2%9C%93&direction=&sort=&search=bob
搜索表格
<%= form_tag computers_path, method: "get" do %>
<%= hidden_field_tag :direction, params[:direction] %>
<%= hidden_field_tag :sort, params[:sort] %>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Go", name: nil, class: "btn btn-primary" %>
<% end %>
调用方法
def index
@computers = Computer.where(school_id: current_user.school_id).search(params[:search]).category(params[:category]).order(sort_column + " " + sort_direction)
end
方法
def Computer.search(search)
if search
search = search.downcase
params = []
values = {}
column_names.each do |c|
params << "#{c} LIKE #{c.to_sym}"
values[c.to_sym] = search
end
params.join (' OR ')
where(params,values)
else
all
end
end