2013-12-13 87 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

相关问题