如何在Rails应用程序中声明可从任何地方访问的变量?

时间:2014-11-05 00:31:59

标签: variables ruby-on-rails-4 devise global-variables

只是想知道如何使用current_user来设置类似设计的东西,这是一个全局可用的变量,我猜测它是一个会话?

我的意思是,要从其他地方获取视图中的任何内容,您需要@前缀

那么这种变量是什么?如何在全球范围内提供这样的变量?

1 个答案:

答案 0 :(得分:3)

  

像设计这样的东西有current_user,一个全局可用的变量,我猜的是一个会话

current_user不是全局变量。例如,您无法在应用程序启动期间引用current_user - 这不仅没有任何意义,也证明它不是全球性的,因为它不可用。另一种快速判断变量是否为Ruby全局的方法是全局变量以$开头。

相反,current_user是一种帮助方法,可以ApplicationController包含在DeviseController中。

要制作类似的方法,您可以将自己的方法添加到自己的应用ApplicationController

def current_balance
  current_user.balance
end

但是,请注意,如果您发现自己在ApplicationController中使用了多个真正的应用程序范围的辅助方法,那么您几乎肯定会通过将不相关的问题混合到控制器中来创建技术债务。 / p>