Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何将变量添加到全局范围?(ruby on rails)_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 如何将变量添加到全局范围?(ruby on rails)

Ruby on rails 如何将变量添加到全局范围?(ruby on rails),ruby-on-rails,ruby,Ruby On Rails,Ruby,因此,我尝试进行一些单元测试,在运行测试时,我的current\u account\u permissions变量未定义。(在服务器运行时工作正常) 它与当前用户类似,除了测试之外,它在任何地方都可用 有没有办法将变量添加到全局范围 可能类似于ENV[“current\u account\u permissions”]=无论什么,但不必使用ENV[]符号来检索变量?我在这里假设,但如果没有任何代码,很难判断,current\u account\u permissions以某种方式混合在应用程序控

因此,我尝试进行一些单元测试,在运行测试时,我的
current\u account\u permissions
变量未定义。(在服务器运行时工作正常)

它与当前用户类似,除了测试之外,它在任何地方都可用

有没有办法将变量添加到全局范围


可能类似于
ENV[“current\u account\u permissions”]=无论什么
,但不必使用
ENV[]
符号来检索变量?

我在这里假设,但如果没有任何代码,很难判断,
current\u account\u permissions
以某种方式混合在
应用程序控制器中

我还假设,
当前帐户权限
是一种方法,它应该执行以下操作

def current_account_permissions
  @current_account_permissions ||= current_user.get_current_account_permissions
end
因此,如果是这样的话,所有的控制器测试都可以正常运行。然而,在您的视图测试中,您将不得不存根当前帐户权限,因为测试时没有控制器上下文


希望这能有所帮助。

我在这里假设,但是如果没有任何代码,很难说,
当前帐户权限
以某种方式混入了
应用程序控制器

我还假设,
当前帐户权限
是一种方法,它应该执行以下操作

def current_account_permissions
  @current_account_permissions ||= current_user.get_current_account_permissions
end
因此,如果是这样的话,所有的控制器测试都可以正常运行。然而,在您的视图测试中,您将不得不存根当前帐户权限,因为测试时没有控制器上下文


希望这有帮助。

当前帐户权限的定义在哪里?定义<代码> Global :)我猜这意味着它在所有的控制器中都是已知的。引用NahanvdAd所说的,这意味着全局变量很可能不是正确的解决方案。考虑“NaNaVDA”是的,它在所有的控制器/助手/视图中都是可用的。它是在lib中定义的,其中定义了当前用户和当前帐户。
current\u account\u permissions
在哪里定义的?定义<代码> Global :)我猜这意味着它在所有的控制器中都是已知的。引用NahanvdAd所说的,这意味着全局变量很可能不是正确的解决方案。考虑“NaNaVDA”是的,它在所有的控制器/助手/视图中都是可用的。它在lib中定义,其中定义了当前用户和当前帐户。