質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

1回答

329閲覧

チェックボックスを利用した絞り込み検索

RnnPenguins

総合スコア36

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

1クリップ

投稿2017/08/30 06:31

Railsを使い、チェックボックスを利用した検索機能を実装したいです。

#前提
ProductとCategoryがあります。
Productは複数あり、かつそれぞれは1つあるいは複数のCategoryに属しています。
このとき、Categoryの絞り込み検索を実装したい。

#現状と質問
Categoryをチェクボックスにして、チェックしたボックスの値を配列として取得することはできました。
Category_ids = [1, 2, 3]

このidと関連したProductを検索するとき、

Product.where(id: ids)

とすれば検索できるのですが、これだと
「id1とid2の両方を持つProduct」のような条件検索ができません。

どうなるかというと、「id1を持つもの」と「id2を持つもの」がヒットします。
ヒットしたものは、id1もid2も持っていて欲しいのですが、この場合どのようにしたら良いのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

Client.where("orders_count = ? AND locked = ?", params[:orders], false)

Ruby on Rails Guides を参照してみると、上のような書き方(プレースホルダ付き条件文と値)でAND 検索ができるようです

なので、下記のような書き方で検索することができるかもしれません

ruby

1category_ids = [1, 2, 3] 2 3 4# 書き方A 5search_cond = 6 [ 7 category_ids.size.times.map { 'id = ?' }.join(' AND '), 8 *category_ids 9 ] 10# => ["id = ? AND id = ? AND id = ?", 1, 2, 3] 11 12# 書き方B 13search_cond = 14 [(['id = ?'] * category_ids.size).join(' AND ')] + category_ids 15# => ["id = ? AND id = ? AND id = ?", 1, 2, 3] 16 17Product.where(search_cond) 18# => SELECT "products".* FROM "products" WHERE (id = 1 AND id = 2 AND id = 3)

簡単に調べてみましたが、何か参考になれば幸いです

Links

投稿2017/09/10 09:38

gouf

総合スコア2321

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問