複数条件検索機能に関して
pryでのparamsの確認
https://gyazo.com/1bf7e4e5a4f2a2e7c511fef2944223db
上記paramsでの検索結果
https://gyazo.com/c947ea6fc48a4618bc16dfd339b0858e
ソースコード
https://github.com/katahabaR3sei/foodapp/tree/feature-area-search
ruby
1def self.search(shop_params) 2 if shop_params 3 Shop.where("name LIKE ? AND genre_id = ? AND pricerange_id = ? AND address_id = ?", "%#{shop_params[0]}%",shop_params[1].to_i,shop_params[2].to_i,shop_params[3].to_i) 4 else 5 Shop.all.order(id: "asc") 6 end 7end
の記述でto_iにてparamsが未入力の場合は空文字を0に変換しています。
(そうしないとERROR: invalid input syntax for integer: ""が出てしまいます。)
この記述だとフォーム未入力が0と認識されて0のidが検索されてしまい、0のidのレコードは存在しない為
検索表示がされないのだと思います。
未入力の場合はその値を無視して、他の条件のみで検索を行いたいのですが、実装のヒントをお教えいただけますでしょうか?
ご確認よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/28 23:11