无法在视图中访问Application Helper方法

时间:2015-03-04 21:33:40

标签: ruby-on-rails ruby ruby-on-rails-4 model-view-controller

我有一个检查表上布尔值的方法,它在我的用户视图中返回false(其他地方返回true)。我无法理解为什么它可以访问,但返回false。

我的代码:

应用程序控制器:

protected

def current_user

  @current_user ||= User.find_by_id(session_user_id) if session_user_id
end

helper_method :current_user

def current_customer
  if current_user.customer and current_user.customer.master?
  else
    current_user.customer
  end
end

helper_method :current_customer

应用程序助手方法:

def customer_helper?
   (current_user && current_user.customer.boolean_value?) 
end

customer_helper?即使我的UsersController继承自ApplicationController。

,我的所有用户视图中的方法都返回false

非常感谢任何建议或帮助。

1 个答案:

答案 0 :(得分:1)

帮助方法中

current_usernil。我假设你在一个视图中访问它,其中current_user已经从控制器暴露给视图。暴露给视图的属性必须传递给辅助方法;它们不会自动在那里提供。

如果我的假设是正确的,那么你的帮助方法看起来应该是这样的。

def customer_helper?(current_user)
  (current_user && current_user.customer.boolean_value?) 
end

然后,您需要在视图中更新对customer_helper?的调用,以传入current_user。