我有一个检查表上布尔值的方法,它在我的用户视图中返回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非常感谢任何建议或帮助。
答案 0 :(得分:1)
current_user
是nil
。我假设你在一个视图中访问它,其中current_user已经从控制器暴露给视图。暴露给视图的属性必须传递给辅助方法;它们不会自动在那里提供。
如果我的假设是正确的,那么你的帮助方法看起来应该是这样的。
def customer_helper?(current_user)
(current_user && current_user.customer.boolean_value?)
end
然后,您需要在视图中更新对customer_helper?
的调用,以传入current_user。