Dol*_*lls 4 ruby-on-rails ruby-on-rails-4
如果存在两个参数,我正在寻找搜索和查找结果,但我将被发送到car_show_path,但应该有结果.
模型
class Car < ActiveRecord::Base
def self.search(car_number, car_model)
where(['car_number = ? AND car_model = ?', "%#{car_number}%", "%#{car_model}%"])
end
end
Run Code Online (Sandbox Code Playgroud)
控制器展示
@search = Car.search(params[:car_number], params[:car_model])
if @search.present?
@search
else
redirect_to car_path, notice: "Not a valid combination"
end
Run Code Online (Sandbox Code Playgroud)
形成
<%= simple_form_for :search, url: car_show_path do |f| %>
<%= f.input :car_number, :collection => @car.collect {|c| [c.number]}, :include_blank => false %>
<%= f.input :car_model, placeholder: "Car Model" %>
<%= f.button :submit, 'Generate', class: 'btn' %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
你做错了.如果查看服务器日志中生成的params哈希,可以看到类似这样的内容:search => {:car_model => "value", :car_number => "Value"}.这意味着,值:car_model和:car_number不能被检索params[:car_model]和params[:car_number],而应该使用params[:search][:car_model]和params[:search][:car_number]
@search = Car.search(params[:search][:car_number], params[:search][:car_model])
if @search.present?
@search
else
redirect_to car_path, notice: "Not a valid combination"
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1149 次 |
| 最近记录: |