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