Основная суть в том, чтобы иметь действие контроллера, которое будет возвращать список игр, отфильтрованных по консоли. Например,
# GamesController.rb
def index
@games = Game.find_by_console(params[:console])
end
Затем вы можете создать ссылку для любой конкретной консоли как таковую:
link_to 'XBOX', games_path(:console => 'XBOX')
Это должно привести к GET
запросу на URL /games?console=XBOX
Если у вас есть предопределенный набор консолей, вы можете попытаться превратить их в константы внутри модуля Consoles
, чтобы избежать необходимости везде их жестко кодировать.
ОБНОВЛЕНИЕ:
Поскольку вы пытаетесь реализовать поиск и фильтрацию в одной и той же цепочке, вам необходимо убедиться, что find_by_console
не вызывается, если его нет.
# GamesController.rb
def index
@games = Game.search(params[:search])
@games = @games.find_by_console(params[:console]) unless params[:console].blank?
end