gpt4 book ai didi

ruby-on-rails - 使用 AND/OR 检查 Ruby on Rails 搜索中的多个条件

转载 作者:太空宇宙 更新时间:2023-11-03 17:22:29 25 4
gpt4 key购买 nike

我目前的方法如下:

    def self.search(query)
where("name like ?", "%#{query}%")
end

如何添加额外的属性?例如,我无法让它工作,但它显示了我想做的事情:

    def self.search(query)
where("name like ? OR model like ? OR year like ?", "%#{query}%")
end

最佳答案

其他答案都可以,但在这些情况下使用命名占位符会更容易,因为这样您就不必多次指定查询:

def self.search query
where( "name LIKE :query OR model LIKE :query OR year LIKE :query", query: "%#{query}%")
end

更新

在评论中,Stefan 建议使用 HEREDOC 进行长查询,这是一个很好的建议。我还想提供如何生成此特定字符串。

因为它基本上是同一件事重复三次,然后加入 OR 我实际上创建了一个小循环来构造字符串,如下所示:

query_string = %w[name model year].map{|n| n+" LIKE :query"}.join(" OR ")
where( query_string, query: )

这样,如果我以后想添加另一个字段,那就简单多了。

关于ruby-on-rails - 使用 AND/OR 检查 Ruby on Rails 搜索中的多个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29158283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com