【问题标题】:Rails - Active Record Search ".where" With Or Statement For Same CriteriaRails - Active Record 搜索“.where”,带有相同条件的 Or 语句
【发布时间】:2016-04-22 11:18:46
【问题描述】:

在我的 Rails 应用程序中,我试图让用户使用与产品描述和名称匹配的关键字或关键词来搜索产品。

根据文档,我是这样写的:

def productSearch
  @results = 0
  if !params[:searchInput].nil?
    @results = 1
    @searchInput = params[:searchInput]
    @searchCriteria = "%#{params[:searchInput]}%"
    @productList = Product.where("description like ? or name like ?", @searchCriteria, @searchCriteria)
  end
end

让我沮丧的是这句话:

@productList = Product.where("description like ? or name like ?", @searchCriteria, @searchCriteria)

是否有将产品的描述和名称与相同的搜索条件进行匹配的简写?

我还想提一下,我对 Ruby on Rails 还很陌生,这是一个学校项目,我必须和我的团队一起建立一个电子商务网站,因此我们将不胜感激。

【问题讨论】:

    标签: ruby-on-rails ruby rails-activerecord


    【解决方案1】:

    试试:

    @productList = Product.where("description like :search or name like :search", search: @searchCriteria)

    【讨论】:

    • 什么是:search?你指的是我的:searchInput 参数还是一个特殊的ruby 关键字?
    • Aaaah 没关系,我想我明白你在做什么。我刚刚测试了它,它可以工作。非常感谢!
    • 你好, :search 只是一个符号,把它想象成一个变量。你可以随心所欲地命名它:)只要确保它与结尾部分匹配('search:')
    猜你喜欢
    • 1970-01-01
    • 2013-09-26
    • 1970-01-01
    • 2014-12-24
    • 1970-01-01
    • 2016-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多