Я пишу приложение rails3 с использованием authlogic и authlogic-oid, чтобы пользователь мог войти и зарегистрироваться, используя свою учетную запись LinkedIn.Я могу вызвать LinkedIn для аутентификации, но проблема у меня заключается в том, что когда вызов возвращается в мое приложение rails, он вызывает GET для / user_sessions и вызывает контроллер индекса вместо выполнения оставшейся части команды createконтроллер.Вот контроллер:
# POST /user_sessions
def create
@user_session = UserSession.new(params[:user_session])
@user_session.save do |result| # <-- redirects to api.linkedin.com here
if result
flash[:success] = "Login successful!"
redirect_back_or @user_session.user_path
else
flash.now[:error] = "Invalid username/password combination."
@title = "Sign in"
render 'new'
end
end
end
Все прекрасно работает до тех пор, пока if result
не будет вызван, потому что программа возобновляет выполнение в контроллере index
вместо того, чтобы начинать с того места, где она остановилась.Любые идеи о том, как это исправить, будут высоко оценены.
Редактировать: кажется, мое предположение о том, что контроллер не завершал выполнение, было неверным.Я поместил несколько операторов отладки и узнал, что программа возобновляет выполнение в этом контроллере после @ user_session.save , но она не выполняет ни одно из условий в операторе if.Я очень запутался в этом.