2015-09-06 60 views
2

我目前停留在轨道教程https://www.railstutorial.org/book/log_in_log_out#sec-logging_in没有找到方法轨指导课程8

我得到的错误未定义的方法`LOGGED_IN的第8课?这里是我的代码

任何帮助将在SessionsHelper理解

module SessionsHelper 


def log_in(user) 
    session[:user_id] = user.id 
end 

def current_user 
    @current_user = @current_user ||= User.find_by(id: session[:user_id]) 
end 

# returns true if the user is logged in 

def logged_in 
    !current_user.nil? 
end 

<!DOCTYPE html> 
<html> 
<head> 

<%= stylesheet_link_tag 'application', media: 'all', 'data- 

turbolinks-track' => true %> 

<%= javascript_include_tag 'application', 'data-turbolinks-track'  

=> true %> 
<%= csrf_meta_tags %> 
</head> 

<body> 
<header class = "navbar navbar-fixed-top navbar-inverse"> 
    <div class = "container"> 
     <%= link_to "sample app", home_path, id: "logo" %> 
     <ul class = "nav navbar-nav navbar-right"> 
      <li> <%= link_to "Home", home_path %> </li> 
      <li> <%= link_to "About", about_path %> </li> 
      <% if logged_in? %> 
       <li> <%= link_to "Log Out", '#' %> </li> 
      <% end %> 
     </ul> 

    </div> 
</header> 

</div> 
<div class = "container"> 

    <%= yield %> 
    <%= render 'layouts/footer' %> 
    <%= debug(params) if Rails.env.development? %> 
</div> 

class ApplicationController < ActionController::Base 

    protect_from_forgery with: :exception 
    include SessionsHelper 
end 

回答

1

你缺少?在你的方法名。你想这样的:

def logged_in? 
    !current_user.nil? 
    end 

您收到此错误:

undefined method `logged_in?' 

,因为目前你没有一个名为logged_in?方法,但你只有一个方法命名为logged_in。所以,您只需将方法名称更改为logged_in?。然后,它会发现该方法,并会正常工作。

+0

是的,我得到的方法名称错误,现在它的工作 –

+0

很好:)很高兴它现在为你工作:) –