Немного рефакторинг:
rails g controller searches
Это аккуратное правило позволит вам использовать отличный контроллер поиска действий на ресурс:
# config/routes.rb
get 'search/:action' => 'searches#:action'
Вот упрощенная версия такого:
class SearchesController < ApplicationController
def foos
search do
Foo.where :name => params[:q]
end
end
def bars
search do
Bar.where :title => params[:q]
end
end
private
def search(&block)
if params[:q]
@results = yield if block_given?
respond_to do |format|
format.html # resources.html.erb
format.json { render json: @results }
end
else
redirect_to root_url, :notice => 'No search query was specified.'
end
end
end
Примеры запросов URL:
/search/foos?q=baz
/search/bars?q=baz