Подтвердить что ты не робот

Передача значений параметра redirect_to в качестве запроса в рельсах

Это должно быть простым, но я не могу найти легкий ответ.

Как передать значения параметров из текущего запроса в вызов redirect_to? У меня есть некоторые значения формы, которые я хотел бы передать в строку запроса перенаправления GET

Я хотел бы сделать что-то вроде:

redirect_to @thing, :foo => params[:foo]

и получите сообщение:

http://things/4?[foo][key1]=val1&[foo][key2]=val2

Спасибо!

Также - как это можно было бы обработать для redirect_to: назад?

redirect_to :back, :foo => params[:foo]
4b9b3361

Ответ 1

Форма "Запись" redirect_to использует второй аргумент только для статуса ответа. Вам нужно будет использовать другую форму redirect_to, например, форму "String". например:.

redirect_to thing_path(@thing, :foo => params[:foo])

который будет работать для вложенных параметров params[:foo], как вы упомянули. Или, как заметил Дрю, вы можете использовать polymorphic_url (или _path):

redirect_to polymorphic_path(@thing, :foo => params[:foo])

Ответ 2

Чтобы добавить к Иорданию ответ:

Если вы не знаете, какой тип объекта @thing может быть, вы можете использовать универсальный метод polymorphic_url. Это метод, который вызывается внутри, когда вы передаете объект redirect_to в любом случае.