Передача значений параметра 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]
Ответы
Ответ 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
в любом случае.