2013-12-13 86 views
0
class UsersController < ApplicationController 
    before_filter :signed_in_user, only: [:index, :edit, :update] 
    before_filter :correct_user, only: [:edit, :update] 

    private 
    def user_params 
    params.require(:user).permit(:name, :email, :password,:password_confirmation) 
    end 

    def signed_in_user 
    unless signed_in? 
     store_location 
     redirect_to signin_url, notice: "Please sign in." 
    end 
    end 

    def correct_user 
    @user = User.find(params[:id]) 

    redirect_to(root_url) unless current_user?(@user) 
    end 
end 

代碼在會議助手:UsersController中的NoMethodError#使用未定義的方法編輯「signed_in?」

def sign_in(user) 
    remember_token = User.new_remember_token 

    cookies.permanent[:remember_token] = remember_token 
    user.update_attribute(:remember_token, User.encrypt(remember_token)) 


    self.current_user = user 
end 


def signed_in? 
    !current_user.nil? 
end 

我使用此代碼,

但是我無法在數據庫中進行編輯和更新我的個人資料。

正如我非常新的這個,

需要有人幫助。

在此先感謝...

回答

1

您是否將SessionHelper模塊包含在您的控制器中?

從您的示例代碼中,我假設您正在使用Michael Hartl的RailsTutorial。您必須在您的ApplicationController中包含SessionsHelper才能夠在所有控制器中使用它。書中退房房源8.14:

class ApplicationController < ActionController::Base 
    protect_from_forgery 
    include SessionsHelper 

    # Force signout to prevent CSRF attacks 
    def handle_unverified_request 
     sign_out 
     super 
    end 
end 
+0

但是,它顯示關於加密方法,並再次signed_in方法也有些錯誤.... – user3074285

+0

對不起,這不是非常有用的信息,以幫助您進一步用。你有沒有按部就班仔細閱讀本書?當你不小心的時候很容易錯過一條重要的路線。也許你應該從應用持續正常工作的角度重做教程。 – yerforkferchips

相關問題