我需要一个可以通过数据库并返回适当结果的方法。在这种情况下,它按作者、标题、出版日期或 ISBN 代码搜索书籍。我决定使用 where() 方法,但我遇到了两个问题:
1) 我无法通过多个字段进行搜索。很容易找到一个标题:
def self.browse(query)
if query.nil?
nil
else
self.where("title REGEXP :query", query: query)
end
end
但我不知道如何设置它来查找标题或作者或 isbn 等尝试
self.where("(title OR author OR publishing_date OR isbn) REGEXP :query", query: query)
但它不起作用
其次,我希望我的查询只匹配单词的开头或结尾。在 mysql Workbench 中它很容易,但我在 Rails 中很难做到。这是我到目前为止尝试过的(但失败了):
self.where("title REGEXP :query", query: /^(query)*$/)
self.where("title REGEXP /^:query/", query: query)
self.where("title REGEXP :query", query: $"query"^)
不用说,在互联网上我找到了许多不同的文档或教程,一个说“^”应该在末尾,另一个应该在开头......