Omniauth - Origin is nil

я использую гем с твиттером. При обратном вызове проверьте, существует ли пользователь, и создайте его или отправьте обратно на главную страницу.
Возможно, я делаю что-то не так, но в моем коде обратного вызова request.env ['omniauth.origin'] имеет значение nil .

Мой код довольно прост:
something.html.erb

<%= link_to image_tag("twitter-connect.png"), "/auth/twitter" %>

routes.rb

match "/auth/:provider/callback" => "sessions#create"

sessions_controller.rb

def create
    auth = request.env["omniauth.auth"]
    user = User.find_by_provider_and_uid(auth["provider"], auth["uid"]) || User.create_with_omniauth(auth)
    if !user.email
        redirect_to confirm_path, :notice => "Add your email!"
    else
        redirect_to request.env['omniauth.origin'] || root_url, :notice => "Signed in!"
    end
end

Если я подниму request.env ['omniauth.origin'] сразу после обратного вызова, я получу объект nil .

Спасибо за вашу помощь!

6
задан Laurent 26 April 2011 в 15:05
поделиться