在登录过程中存在这样的代码:
session[:user_id] = @user.id
但是这样的可读性很低,代码冗长,不易维护,这是需要使用helper方法。
在app/helpers/sessions_helper.rb文件中,添加这样的代码
module SessionsHelper
def log_in(user)
session[:user_id] = user.id
end
end
然后在app/controllers/application_controller.rb中,添加
include SessionsHelper
因为这个类只所有Controller都继承的类,所以在Controller中都能用
然后仍然在sessions_helpera.rb中添加其他代码
def current_user
@current_user = @current_user || User.find_by(session[:user_id])
end
def logged_in?
@current_user.nil?
end
def log_out
session.delete :user_id
@current_user = nil #一定要进行置空
end
这几个函数分别提供 检查是否已经登录并返回登录信息,是否未登录并返回结果,登出操作。然后就可以在需要的地方使用了