无法访问视图中的应用程序帮助程序方法



我有一个方法,它检查表上的布尔值,在我的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。

最新更新