データベースを通過して適切な結果を返すメソッドが必要です。この場合、著者、タイトル、発行日、または ISBN コードで書籍を検索します。where() メソッドを使用することにしましたが、2 つの問題が発生しました。
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"^)
言うまでもなく、インターネットでさまざまなドキュメントやチュートリアルを見つけました.1つは「^」が最後にあるはずで、もう1つは最初にあるはずです...