加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

任何人都可以建议吗?
方法current_user根本没有从index调用.

解决方法

在控制器中包含SessionsHelper包括控制器中的那些模块方法,因此可以在控制器方法中访问它们.您希望视图中提供帮助程序方法,因此您需要在应用程序控制器中使用帮助程序SessionsHelper.

话虽如此,我同意Jits的说法,你在SessionsHelper中拥有的方法确实属于控制器而不是助手.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读