ruby-on-rails – 无法从View中访问Helper类
发布时间:2020-12-16 23:30:41 所属栏目:百科 来源:网络整理
导读:我定义了一个helper类,如下所示 module SessionsHelper def current_user @current_user= User.find_by_fbid(session[:fbid]) end def sign_in(user) session[:fbid] = user.fbid @current_user = user end def signed_in? !current_user.nil? end end 我在
我定义了一个helper类,如下所示
module SessionsHelper def current_user @current_user= User.find_by_fbid(session[:fbid]) end def sign_in(user) session[:fbid] = user.fbid @current_user = user end def signed_in? !current_user.nil? end end 我在我的应用程序控制器中包含了Helper类 class ApplicationController < ActionController::Base protect_from_forgery include SessionsHelper end 登录方法从会话控制器调用 class SessionsController < ApplicationController def create user = User.find_or_create_by_fbid(params[:user][:fbid]) user.update_attributes(params[:user]) sign_in(user) redirect_to user_path(user) end end 但是我无法从用户#show view访问’current_user’变量. <% if signed_in? %> <p> <b>Current User:</b> <%= current_user.name %> </p> <% end %> 它说:nil的未定义方法`name’:NilClass 任何人都可以建议吗? 解决方法
在控制器中包含SessionsHelper包括控制器中的那些模块方法,因此可以在控制器方法中访问它们.您希望视图中提供帮助程序方法,因此您需要在应用程序控制器中使用帮助程序SessionsHelper.
话虽如此,我同意Jits的说法,你在SessionsHelper中拥有的方法确实属于控制器而不是助手. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |