Я полный noob, работающий над учебниками Rails Майкла Хартла (Awesome), и у вас есть проблема с дружеской переадресацией в Ch.10.2.3. Цель состоит в том, чтобы попытаться сохранить местоположение, перенаправить на страницу с подписью, а затем переадресовать обратно к исходному назначению, когда регистрация будет завершена. Моя проблема заключается в том, что он просто отображает стандартную страницу профиля пользователя после входа/создания сеанса, а не перенаправления.Проблема с перенаправлением Rails - Учебник Rails Rails 10.2.3
У меня есть это в sessions_controller:
def create
user = User.authenticate(params[:session][:email],
params[:session][:password])
if user.nil?
flash.now[:error] = "Invalid email/password combination."
@title = "Sign in"
render 'new'
else
sign_in user
redirect_back_or user
end
end
И это в sessions_helper:
def authenticate
deny_access unless signed_in?
end
def deny_access
store_location
redirect_to signin_path, :notice => "Please sign in to access this page."
end
def redirect_back_or(default)
redirect_to(session[:return_to] || default)
clear_return_to
end
private
def store_location
session[:return_to] = request.fullpath
end
def clear_return_to
session[:return_to] = nil
end
Я уверен, что я еще раз сделал глупую, простую ошибку, но я не могу найти его .. помочь?
Вы попробовали 'session [: return_to] = request.request_uri'? это было какое-то время, поэтому я не могу вспомнить, будет ли request.fullpath иметь что-то, что вы можете «redirect_to». это возможно, но понял, что это будет что-то легкое, что вы можете проверить. – sorens
У меня есть, но из других комментариев я думаю, что request_uri устарел с Rails 3.0. – GroundskeeperWillie
Трудно не иметь всего кода, но проверить одно: убедитесь, что метод «store_location» на самом деле вызван где-то во время процесса входа в систему. –