2015-09-06 25 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

很好:)很高興它現在爲你工作:) –