Очень часто у меня есть форма на какой-нибудь веб-странице, которую пользователь отправляет в действие POST, PUT или DELETE в Rails, где я хочу, чтобы она перенаправлялась на указанный URL-адрес, если отправка прошла успешно. Обычно я делаю скрытый дополнительный параметр с именем to
с путем вроде /users
. Таким образом, если отправка формы не удалась, она просто останется в этой форме, но если это удается, браузер перенаправляется на /users
.
Я хотел бы автоматически искать этот параметр и всегда перенаправлять на него, если отправка формы прошла успешно в любом контроллере/действии. Поместить это в ApplicationController
внутри after_action
?
class ApplicationController < ActionController::Base
after_action :redirect_if_success
private
def redirect_if_success
redirect_to params[:to] if params[:to]
end
end
Думаю, я могу проверить объект запроса, если это было действие POST, PUT или DELETE. Как я узнаю, что отправка прошла успешно? Будет ли redirect_to
в after_action
переопределять любые redirect_to
в контроллере формы?