В моем контроллере у меня есть:
def update
case params[:something]
when 'x'
if all_is_good
good_stuff_happens
flash[:notice] = "Good stuff happened"
else
access_denied
end
when 'y'
other_good_stuff_happens
flash[:notice] = "Other good stuff happened"
when 'z'
even_more_good_stuff_happens
flash[:notice] = "Even more good stuff happened"
end
redirect_to good_place_path
end
И в моем ApplicationController у меня есть:
def access_denied
redirect_to message_path, :alert => 'Access Denied'
end
По большей части, я всегда хочу перенаправить на good_place_path после оператора case.
Иногда я хочу запретить доступ и оставить все как есть. Есть ли способ, которым я могу позвонить
acccess_denied
с моего контроллера, а затем не возвращаться к вызывающему контроллеру (или он пытается выполнить второе перенаправление, и, таким образом, я получаю DoubleRenderError) Я понимаю, я мог бы просто поставить
redirect_to good_place_path
в каждом утверждении когда, но мне интересно, есть ли более элегантное решение.
Спасибо.
Sean