2014-09-06 137 views
0

我一直在嘗試將我的應用程序設置爲將新註冊/註冊重定向到我的應用程序中的特定路線。我已經使用推薦在app /控制器/用戶創建一個註冊控制器色器件文檔/然後使用使用Devise&Omniauth註冊後重定向

def after_sign_up_path_for(resource) 
show_cities_path(resource) 
end 

,但我還沒有任何運氣,甚至編輯routes文件,包括它之後。

devise_for :users, :controllers => { :omniauth_callbacks => "omniauth_callbacks", :registrations => "users/registrations" } 

我目前使用Twitter Omniauth與Devise。

我的路線文件如下:

Rails.application.routes.draw do 

devise_for :users, :controllers => { :omniauth_callbacks => "omniauth_callbacks" } 

class OmniauthCallbacksController < Devise::OmniauthCallbacksController 
def twitter 
auth = env["omniauth.auth"] 

@user = User.find_for_twitter_oauth(request.env["omniauth.auth"],current_user) 
if @user.persisted? 
    flash[:notice] = I18n.t "devise.omniauth_callbacks.success" 
    sign_in_and_redirect @user, :event => :authentication 
else 
    session["devise.twitter_uid"] = request.env["omniauth.auth"] 
    redirect_to new_user_registration_url 
end 
end 
end 

誰能推薦一個替代方法或告訴我在哪裏出了錯?

編輯:對不起,可能沒有清楚。我已經有了使用Devise和Omniauth的用戶模型設置。這是新註冊的重點。

+0

你見過本教程[鏈接](http://sourcey.com/rails-4-omniauth-using-devise-with-twitter-facebook-and-linkedin/)。 – kendotwill 2014-09-06 15:38:38

+0

@kendotwill是的。對不起,我可能不清楚。用戶模型與Devise&Omniauth完美結合。我只是試圖在新用戶註冊時覆蓋重定向。 – DMH 2014-09-06 15:40:16

+0

什麼控制器在'after_sign_up_path_for'方法中做了什麼?我認爲你應該把它移到應用程序控制器。 – Thanh 2014-09-06 15:44:35

回答