Так часто у меня есть форма на какой-либо веб-странице, которую пользователь отправляет в POST, PUT или DELETE действие в Rails, где я хочу, чтобы он перенаправлялся к указанному URL-адресу, если представление было успех. Я обычно делаю скрытый дополнительный параметр, называемый to
с дорожкой, как /users
. Поэтому, если представление формы завершилось неудачно, оно просто останется в этой форме, но если это удастся, браузер будет перенаправлен на /users
.Перенаправление на указанный URL-адрес после POST в Rails
Я хотел бы автоматически искать этот параметр и всегда перенаправлять на нее, если представление формы удалось любой контроллер/действие. Я помещаю это в 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
s в контроллере формы?