ruby-on-rails – 无法从View中访问Helper类

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 无法从View中访问Helper类前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我定义了一个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中拥有的方法确实属于控制器而不是助手.

原文链接:https://www.f2er.com/ruby/264568.html

猜你在找的Ruby相关文章