railsでアプリケーションを作成しています。
ruby
1 def search 2 if params[:city_id] 3 pagy, offices = pagy Office.where(city_id: params[:city_id]) 4 pagy_headers_merge(pagy) 5 elsif params[:keyword] 6 keywords = params[:keyword].split(/[[:blank:]]+/).select(&:present?) 7 pagy, offices = pagy_array([]) 8 pagy_headers_merge(pagy) 9 search_office_from_keyword(keywords) 10 else 11 pagy, offices = pagy(Office.all) 12 pagy_headers_merge(pagy) 13 end 14 render json: offices, each_serializer: OfficeIndexSerializer, include: '**' 15 end 16 17 def search_office_from_keyword(keywords) 18 offices = [] 19 keywords.each do |keyword| 20 offices += Office.where('name LIKE (?) OR 21 address LIKE (?) OR 22 near_station LIKE (?) OR 23 introduction LIKE (?) OR 24 company LIKE (?)', 25 "%#{keyword}%", 26 "%#{keyword}%", 27 "%#{keyword}%", 28 "%#{keyword}%", 29 "%#{keyword}%") 30 end 31 offices 32 end
searchアクションが長すぎたので、下にメソッドを作成しましたがこれがうまく機能しません。
このsearchアクションを動作させた上で、elsif内の指示があったときにPagy(ページネーションがヘッダーに認識される)が機能するようにしたいです。
詳しい方、宜しくお願いします。
回答1件
あなたの回答
tips
プレビュー