我有一个方法,它检查表上的布尔值,在我的Users视图中它返回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?方法在我的所有Users视图中都返回false,即使我的UsersController继承自ApplicationController。
如有任何建议或帮助,我们将不胜感激。
current_user
是helper方法中的nil
。我假设您在一个视图中访问这个,其中current_user已经从控制器暴露在该视图中。向视图公开的属性必须传递到helper方法中;它们在那里不是自动可用的。
如果我的假设是正确的,那么你的helper方法应该是这样的。
def customer_helper?(current_user)
(current_user && current_user.customer.boolean_value?)
end
然后,您需要在视图中更新对customer_helper?
的调用,以传入current_user。