[解決済み] ArelとRailsでLIKEクエリを実行するには?
2022-08-13 23:18:50
質問
のようなことをしたいのですが。
SELECT * FROM USER WHERE NAME LIKE '%Smith%';
Arelでの私の試み。
# params[:query] = 'Smith'
User.where("name like '%?%'", params[:query]).to_sql
しかし、これはなる。
SELECT * FROM USER WHERE NAME LIKE '%'Smith'%';
Arelはクエリ文字列'Smith'を正しくラップしますが、これはLIKE文であるため、うまくいきません。
ArelでLIKEクエリを行うにはどうしたらよいでしょうか?
P.S. ボーナス--私は実際にテーブル上の2つのフィールド、名前と説明の両方をスキャンして、クエリに一致するものがあるかどうかを確認しようとしています。それはどのように動作するのでしょうか?
どのように解決するのですか?
これは、arelでlike queryを実行する方法です。
users = User.arel_table
User.where(users[:name].matches("%#{user_name}%"))
PS:
users = User.arel_table
query_string = "%#{params[query]}%"
param_matches_string = ->(param){
users[param].matches(query_string)
}
User.where(param_matches_string.(:name)\
.or(param_matches_string.(:description)))
関連
-
[解決済み] Ruby on Railsのランナー
-
[解決済み] 該当するルートがない [GET] "demo/hello"
-
[解決済み] Railsマイグレーションを利用してカラムをドロップする方法
-
[解決済み] Ruby on Railsでsimple_formを使うさまざまな方法|何が違うの?
-
[解決済み] nil:NilClass の未定義メソッド `each'... なぜ?
-
[解決済み] バリデーションなしで属性を更新する方法
-
[解決済み] Ruby on Railsのマイグレーションでデータベースのカラムの名前を変更するにはどうすればよいですか?
-
[解決済み] Ruby on Railsで現在の絶対URLを取得するにはどうすればよいですか?
-
[解決済み] NOT NILを使ったRailsのWHEREコンディション
-
[解決済み】Railsの認証トークンを理解する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】警告:定数 ::Fixnum は非推奨 新しいモデルを生成するとき
-
[解決済み] erbでコメントを追加する最適な方法
-
[解決済み] PG::ConnectionBad - サーバーに接続できませんでした。接続が拒否されました。
-
[解決済み] Oauth2 Instagram API "リダイレクトURIが登録されたリダイレクトURIと一致しない"
-
[解決済み] rails erb フォームヘルパー options_for_select :selected
-
[解決済み] Ruby: public static メソッドを作るには?
-
[解決済み] Railsコントローラからホスト名を取得する
-
[解決済み] バリデーションなしで属性を更新する方法
-
[解決済み] サーバーはRailsで既に稼働している
-
[解決済み] RubyとRailsの "Date.today "フォーマット