2015-12-15 65 views
0

我想用Rails 4 &設計一個應用程序。Rails 4,Devise&Omniauth - 沒有方法錯誤

我想按照這個教程:

http://sourcey.com/rails-4-omniauth-using-devise-with-twitter-facebook-and-linkedin/

當我完成的步驟,並運行服務器,我得到這個錯誤

NoMethodError (undefined method `update' for nil:NilClass): 
2015-12-14T20:37:03.180526+00:00 app[web.1]: app/controllers/users_controller.rb:43:in `finish_signup' 
2015-12-14T20:37:03.180540+00:00 app[web.1]: 

結束報名方法是:

def finish_signup 
    # authorize! :update, @user 
    if request.patch? && params[:user] #&& params[:user][:email] 
     if @user.update(user_params) 
     @user.skip_reconfirmation! 
     sign_in(@user, :bypass => true) 
     redirect_to @user, notice: 'Your profile was successfully updated.' 
     else 
     @show_errors = true 
     end 
    end 
    end 

確定爲概率的具體行lem是:

if @user.update(user_params) 

有沒有人看到發生了什麼問題?我不知道如何閱讀錯誤來理解它的抱怨。任何人都可以看到問題嗎?

+0

你不初始化變量@user。 –

+0

嗨,我真的很抱歉,但不知道你的意思,你的意思是我應該寫@current_user代替嗎? – Mel

+0

你有'before_action:set_filter',就像例子嗎?你應該,否則沒有'@ user'實例變量集 –

回答

0

您會收到錯誤消息,因爲您的@usernil

我可以從你的意見看到的是你需要更新此

before_action :set_user, only: [:index, :show, :edit, :update, :destroy] 

這個

before_action :set_user, only: [:index, :show, :edit, :update, :destroy, :finish_signup] 
相關問題