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'))