我目前被困在rails教程in的第8课上。
我得到了未定义的错误方法`logged_in?‘这是我的密码
如能提供任何帮助,将不胜感激。
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发布于 2015-09-06 17:04:20
在?中的方法名中缺少了SessionsHelper。你想这么做:
def logged_in?
!current_user.nil?
end您将得到以下错误:
undefined method `logged_in?'因为目前您没有一个名为logged_in?的方法,但是您只有一个名为logged_in的方法。因此,您只需将方法名更改为logged_in?即可。然后,它会找到方法,并将工作良好。
https://stackoverflow.com/questions/32426035
复制相似问题