ruby
1 def search 2 if params[:city_id] 3 offices = Office.where(city_id: params[:city_id]) 4 elsif params[:keyword] 5 keywords = params[:keyword].split(/[[:blank:]]+/).select(&:present?) 6 keywords.each do |keyword| 7 offices = Office.where("name LIKE ? OR address LIKE ? OR near_station LIKE ? OR introduction LIKE ? OR company LIKE ?", "%#{keyword}%","%#{keyword}%","%#{keyword}%","%#{keyword}%","%#{keyword}%") 8 end 9 else 10 pagy, offices = pagy(Office.all) 11 end 12 render json: offices, each_serializer: OfficeIndexSerializer, include: '**' 13 end
やりたいこと
もし、keywordが入力された際に、入力されたキーワードを配列でkeywordsに格納し、その配列のデータで繰り返し処理を行いOfficeのデータから該当のOfficeを表示させたいです。
##不明点
キーワード → 東京
この場合であれば,検索ができます。
しかし、やりたいこととしては
キーワード → 東京 福岡
複数キーワードが入力された際にこのキーワードが指定しているカラムに含まれているOfficeを表示させたいです。
これがうまく現状では表示することができません。
詳しい方、宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/24 09:16
2020/09/24 09:20
2020/09/24 09:20
2020/09/24 09:21
2020/09/24 09:26
2020/09/24 09:29
2020/09/24 09:52
2020/09/24 09:52
2020/09/24 13:31
2020/09/28 05:12
2020/09/28 05:56
2020/09/28 07:21
2020/09/28 07:21
2020/09/28 07:22
2020/09/28 07:25
2020/09/28 07:27
2020/09/28 07:28