首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails表单-搜索引擎

Rails表单-搜索引擎
EN

Stack Overflow用户
提问于 2015-10-22 21:50:15
回答 1查看 36关注 0票数 0

我试图创建简单的搜索引擎,但我遇到了一些问题。我的表单中有几个search_field,如果两者都是空的,应该返回所有对象。否则,当它有任何内容时,应该由该内容来选择。以下是我的表格样本:

代码语言:javascript
复制
  <%= form_for :product, url: products_path, method: :get do |form| %>
    <%= form.search_field :brand %>
    <%= form.search_field :model %>
    <%= form.search_field :price_from %>
    <%= form.search_field :price_to %>
    <%= form.submit 'Submit' %>
  <% end %>

我的模型方法:

代码语言:javascript
复制
  def self.search(search)
    where(brand: search[:brand]).where(model: search[:model]).where("price >= ?", search[:price_from]).where("price <= ?", search[:price_to])
  end

但是上面的代码是错误的,因为如果我让某个字段为空,它将被直接视为空字符串,而不是忽略该字段,并且最终结果是不正确的。此表单的工作方式类似于在线商店的筛选。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-22 22:16:55

你可以做这样的事

代码语言:javascript
复制
def self.search(search)
    results = all
    results = results.where(brand: search[:brand]) if search[:brand]
    results = results.where(model: search[:model]) if search[:model]
    results = results.where("price >= ?", search[:price_from]) if search[:price_from]
    results = results.where("price <= ?", search[:price_to]) if search[:price_to]
    return results
end

祝好运。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33291377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档