1. ホーム
  2. sql

[解決済み] Railsです。特定の文字列を含むフィールドをfind_byする方法

2023-03-27 20:34:58

質問

トピックという名前のモデルを持っていて、フィールドとして名前を持っています。

例えば、appleという単語を検索するとします。

を実行すると

Topic.find_by_name("apple")

appleという名前のレコードが返ってきました。しかし、find_by_name を変更して、"apple" だけでなく "apple juice" も見つけることができるようにするにはどうしたらよいでしょうか。

編集します。 すべての回答ありがとうございます。先ほどもう少しはっきりさせるべきだったと思いますが、変数名で検索したい場合はどうすればいいのでしょうか(明らかに毎回"apple"という名前で検索したいわけではありません :)。)?

これに対応するためにTopic.whereをどのように操作すればよいのでしょうか? つまり、次のようなものです...

@topic = Topic.where(......., @name)

どのように解決するのですか?

こんな感じでいいんじゃないでしょうか。

Topic.where("name like ?", "%apple%")

編集に対応するため。

Topic.where("name like ?", "%#{@search}%")

基本的な文字列補間の場合、値を @search の中の文字列 %% というように @search = "apple" とすると、最終的に %apple%