首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有方法找到rails教程第8课

没有方法找到rails教程第8课
EN

Stack Overflow用户
提问于 2015-09-06 16:59:06
回答 1查看 116关注 0票数 2

我目前被困在rails教程in的第8课上。

我得到了未定义的错误方法`logged_in?‘这是我的密码

如能提供任何帮助,将不胜感激。

代码语言:javascript
复制
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

结束

代码语言:javascript
复制
<!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>
代码语言:javascript
复制
class ApplicationController < ActionController::Base

  protect_from_forgery with: :exception
  include SessionsHelper
end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-06 17:04:20

?中的方法名中缺少了SessionsHelper。你想这么做:

代码语言:javascript
复制
  def logged_in?
    !current_user.nil?
  end

您将得到以下错误:

代码语言:javascript
复制
undefined method `logged_in?'

因为目前您没有一个名为logged_in?的方法,但是您只有一个名为logged_in的方法。因此,您只需将方法名更改为logged_in?即可。然后,它会找到方法,并将工作良好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32426035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档