嗨我需要输入最小数字和最大数字来显示所有车辆之间的https://www.lpauto.ca/used-cars-vancouver?Makes=Audi
这是我的表格
<%= form_for "",url: cars_path, role: "search", method: :get do %>
<%= text_field_tag :searchp, @search_pricen_term,placeholder: "Min..." %>
<%= text_field_tag :searchpx, @search_pricex_term,placeholder: "Max..." %>
<% end %>
在索引中的控制器
if params[:searchp]
@search_pricen_term = params[:searchp]
@cars= @cars.search_by(@search_pricen_term)
end
在模型中
def self.search_by(search_pricen_term)
where("price <= :search_pricen_term OR price >= :search_pricex_term ",
search_pricen_term: search_pricen_term )
end
答案 0 :(得分:0)
使用'scope'更新了模型类中的where条件 它接收最小值和最大值并返回所有汽车 在给定范围之间。 希望这会有所帮助。
在控制器中,将最小值和最大值都传递给模型。
if params[:searchp] || params[:searchpx]
@search_pricen_term = params[:searchp]
@search_pricex_term = params[:searchpx]
@cars = Car.between_range(@search_pricen_term, @search_pricex_term)
end
在视图中,
<%= form_for "",url: cars_path, role: "search", method: :get do %>
<%= text_field_tag :searchp, @search_pricen_term,placeholder: "Min..." %>
<%= text_field_tag :searchpx, @search_pricex_term,placeholder: "Max..." %>
<%= submit_tag "Submit" %>
<% end %>
在模型中,
scope :between_range, -> (min, max) { where("price >= ? OR price <= ?", min, max) }