параметры, появляющиеся в params [: format] при передаче в _path route helper - PullRequest
0 голосов
/ 31 марта 2020

У меня есть функция, которая вызывает вспомогательную функцию _path с несколькими параметрами: v2_specific_path(user, filter_params) Это прекрасно работает, и в методе контроллера, который обрабатывает этот путь, я вижу как user и filter_params, так и их значения.

На самом деле, если я пытаюсь распечатать params, они не отображаются, но если я распечатываю одну из них, они печатаются нормально. filter_params имеет вспомогательную функцию, которая строит ха sh из нескольких params[:keys], поэтому это может быть причиной.

Я пытаюсь добавить еще один набор параметров к вызову функции: v2_specific_path(user, new_params, filter_params) Поскольку я пытаюсь добавить некоторые функции, которые требуют передачи некоторой информации в базовый контроллер, который разрешает этот запрос.

Проблема в том, что это не работает и, кажется, что-то запутывает:

  1. Если я поставлю их посередине: v2_specific_path(user, new_params, filter_params), то все остальные параметры будут работать отлично, но new_params фактически появится внутри params[:format] как: params[:format]="param1=4&param2=hi
  2. Если я поместите их в конец: v2_specific_path (user, filter_params, new_params), затем filter_params вообще не анализируется и появляется в params[:format], но new_format , кажется, анализируется и появляется в params правильно

Я не могу понять, почему это происходит. Я удостоверился, что у меня есть правильные значения params.require/params.permit в контроллере.

Любая помощь приветствуется, если у кого-то есть какие-либо другие альтернативы передаче значений из application_helper в контроллер (через _path или какой-либо общий переменная), которая также очень поможет

Спасибо!

1 Ответ

0 голосов
/ 20 апреля 2020

Для тех, кто ищет решение этой проблемы:

Я исправил это, выполнив две вещи: 1) создал правильные новые маршруты, которые подходили для моей реализации (я тоже пытался что-то сделать немного умный и решил просто создать новые релевантные маршруты вместо того, чтобы делать что-то слишком динамичное 2) Я добавил в маршруты нужные мне параметры: /something/:param1/whatever/:param2 et c.

Это сработало для меня

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...