Ruby on rails – Helper方法 – Ruby on rails上的未定义方法`log_in’

我正在基于Michael Hartl的Ruby on Rails教程第3版实现登录。 陷入第8章。

SessionsHelper定义一个新的log_in辅助函数,如下所示。 当我尝试在SessionController访问相同的函数时,我得到了未定义的方法log_in

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

和SessionCOntroller代码是

 class SessionsController < ApplicationController def new end def create user = User.find_by(email: params[:session][:email].downcase) if user && user.authenticate(params[:session][:password]) log_in user redirect_to user else flash[:danger] = 'Invalid email/password combination' render 'new' end end 

您缺少ApplicationController部分,其中包含控制器中的帮助程序,因此可以直接访问其方法:

 class ApplicationController < ActionController::Base protect_from_forgery with: :exception include SessionsHelper end