Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 4具有两个以上参数的简单搜索表单_Ruby On Rails_Search_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails Rails 4具有两个以上参数的简单搜索表单

Ruby on rails Rails 4具有两个以上参数的简单搜索表单,ruby-on-rails,search,ruby-on-rails-4,Ruby On Rails,Search,Ruby On Rails 4,我一直在创建一个简单的搜索表单,允许我输入3个不同的条件,以便在库存中找到一辆车。这三个标准是汽车VIN、汽车型号或汽车颜色。到目前为止,我所做的只是允许我搜索VIN编号或颜色,但每当我输入型号时,搜索不会返回任何内容 这是控制器: def index #@cars = Car.all @cars = Car.search(params[:search], params[:car_VIN], params[:car_model], params[:car_color]).page(param

我一直在创建一个简单的搜索表单,允许我输入3个不同的条件,以便在库存中找到一辆车。这三个标准是汽车VIN、汽车型号或汽车颜色。到目前为止,我所做的只是允许我搜索VIN编号或颜色,但每当我输入型号时,搜索不会返回任何内容

这是控制器:

  def index
#@cars = Car.all
@cars = Car.search(params[:search], params[:car_VIN], params[:car_model], params[:car_color]).page(params[:page])
结束

这是我的模型:

def self.search(search, car_VIN, car_model, car_color)
if search
  where('car_VIN LIKE ? OR car_model LIKE ? OR car_color LIKE ?', "%#{search}%", "%#{search}%", "%#{search}%")
else
  where(nil)
end
结束

以下是我的看法:

<%= form_tag cars_path, :method => 'get' do %>
<p>
  <%= text_field_tag :search, params[:search], :placeholder => "Car VIN, model or color" %>
  <%= submit_tag "Search", :name => nil %>
</p>
“get”do%>

“汽车VIN、型号或颜色”%>
零%>

我真的无法确定为什么它在输入车型时不会返回物品,但如果输入VIN或颜色,它会返回物品。感谢您的帮助。

大掌心。。。 花了一个小时后,我意识到我没有在搜索表中输入车型,但车辆制造商,因此输入丰田不会返回任何东西,但输入卡罗拉会返回任何东西。 无论如何,因为我最初发布的模型/控制器/视图是有效的,所以可以随意使用它作为参考