Rails: добавление параметров URL и удаление параметров URL

EDIT: See below unanswered part II.

(ОТВЕТ) I. Добавление URLS

Я пытаюсь скомпоновать параметры в моем представлении, используя основные рекомендации по параметрам:

users_path(:a => 'test')

Вышеизложенное вернет: ?a=test

Тем не менее, я хочу иметь возможность последовательно нажать:

users_path(:b => 'goat')

и вернуть его ?a=test&b=goat

Любые предложения о том, как складывать/добавлять эти параметры URL?

(НЕ ОТВЕТЕН) II. Удаление параметров

Если я хочу добавить ссылку [x] рядом с параметром, как я могу удалить ее соответствующий параметр?

(ОТВЕТ) III. Удаление page Параметр

Я хотел бы удалить параметр page, когда пользователь выбирает выбор параметра. Есть ли способ сделать это? Ясно, что если я выбираю "Спорт" в качестве категории параметров, разбиение на страницы не должно оставаться на странице, например, 26.

Ответ 1

Если вы хотите добавить текущие параметры, вы можете попробовать следующее:

users_path(params.merge(:b => 'goat'))

Возможно, вы захотите написать вспомогательный метод, который сделает это за вас:

def merged_with_current_params(additional)
  params.merge(additional)
end

Что касается второй части вашего вопроса, вы, вероятно, захотите расширить входящий params в ряд флажков с соответствующими именами и значениями. Отключение флажка и отправка формы приведет к удалению этого параметра из запроса.

Чтобы удалить параметр :page, вместо этого добавьте это к своему помощнику:

params.except(:page).merge(additional)

Ответ 2

Вы можете использовать request.query_parameters для использования только необходимых параметров, например:

users_path(request.query_parameters.merge(:b => 'goat'))