2009-08-20 2 views
3

Следуя некоторому коду в книге Agile Web Development, существует способ перенаправления на последнюю просматриваемую страницу с помощью redirect_to (: back), однако, когда я это делаю, он просто возвращается обратно на странице он был включен.ruby ​​on rails redirect_to (: back) не работает

Каков наилучший способ получения желаемого результата? Я делаю что-то неправильно? Мой код:

def update 
@user = current_user 
if @user.update_attributes(params[:user]) 
    flash[:notice] = "Successfully updated profile." 
    redirect_to(:back) 
else 
    render :action => 'edit' 
end 
end 

ответ

8

Я думаю, что это ведет as intended:

: назад - Назад на страницу, выдавший запрос , Полезно для форм, которые запускаются из нескольких мест.

1

Разве это не то, что он должен делать? Возможно, вы редактируете страницу, когда вы нажимаете кнопку «отправить», чтобы обновить пользовательские атрибуты. Как только это обновление будет выполнено,: назад вернет вас на страницу редактирования (это последняя просматриваемая страница). Разве это не то, что вы хотите?

Если вы хотите, чтобы перейти на страницу пользователей: вы могли бы сделать что-то вроде этого

redirect_to user_path(@user) 
+1

Я решил, что он перенаправит обратно на страницу, на которой ранее был пользователь (скажем, статью в блоге => редактировать страницу профиля => назад к статье в блоге) – Ryan

+0

В таком случае, я думаю, вы захотите to redirect_to @blog –

+0

Ну, sort've, похоже, мне нужно будет прописать какой-то сеанс, чтобы сохранить последнюю страницу, на которой был пользователь, перед входом на страницу редактирования профиля. – Ryan

Смежные вопросы