Я думаю, вам следует использовать области или методы, которые возвращают отношение ActiveRecord в вашем классе Game, и объединять их в цепочку (я думаю, вы хотите объединить условия с помощью оператора AND):
class Games
scope gamsearch, lambda { |search_param| your_conditions }
scope consearch, lambda { |search_param| your_conditions }
scope gensearch, lambda { |search_param| your_conditions }
scope game_name, lambda { |game_name_param| where("game_name LIKE ?", "#{game_name_param}%") }
scope console, lambda { |console_param| where("console = ?", console_param) }
end
def index
scope = Game.gamsearch(params[:gamsearch])
scope = scope.consearch(params[:consearch]) if params[:consearch].present?
scope = scope.gensearch(params[:gensearch]) if params[:gensearch].present?
scope = scope.game_name(params[:game_name]) if params[:game_name].present?
scope = scope.console(params[:console]) if params[:console].present?
@games = scope.paginate
end