Как мне использовать redirect_to () со всем в текущем массиве params [] в rails 3? - PullRequest
2 голосов
/ 03 февраля 2011

Я хотел бы отправить в функцию redirect_to все параметры текущей страницы, не зная отдельных параметров. Параметры на конкретной странице являются переменными по количеству и не всегда известны во время разработки. Пока я нашел только примеры отправки известных параметров и значений.

Я хочу сделать это:

redirect_to named_path, :notice => 'Some notice.', :params => params

Я не хочу сделать это:

redirect_to named_path, :notice => 'Some notice.', :param1 => "v1", :param2 => "v2", ...

ТИА!

Ответы [ 3 ]

1 голос
/ 30 сентября 2015

Вы можете использовать

redirect_to named_path (params.merge (: note => 'Некоторое уведомление.'))

Вы можете даже изменить параметры, удалить некоторыеиспользуя params.merge () с его обычным поведением:)

1 голос
/ 03 февраля 2011

Это может сработать: (не проверено)

redirect_to named_path, params.merge({ :notice => 'Some notice' })

Идея состоит в том, чтобы сделать последний параметр из redirect_to одного хеша на основе исходного params хеша и объединить любое дополнительное значение.

0 голосов
/ 11 ноября 2017

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

redirect_to request.params.merge({new_params: 'foo'})

Далее, вы можете передать все текущие параметры с новым параметром на новый путь с помощью этого кода:

redirect_to new_path(request.params.merge({new_params: 'foo'}).except(:action, :controller))

params является экземпляром ActionController::Parameters. Поэтому он не может быть преобразован в хеш и не поддерживает метод .merge. Таким образом, используйте request.params вместо.

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