在自定义Web应用程序中跨对象/类共享实例数据

时间:2010-08-06 14:32:36

标签: ruby oop class module

我正在使用Ruby从头开始研究机架式网络应用程序,我希望能够在应用程序的所有类中共享多个对象的实例。例如,记录器,请求信息,当前经过身份验证的用户,get / post参数等

对于熟悉PHP的任何人,我在过去使用静态变量完成了这项工作,例如: self :: $ params,它从每个继承自基类的类的每个实例共享。

用ruby实现这一目标的最佳方式是什么?

1 个答案:

答案 0 :(得分:2)

ruby​​中的语法类似

$variable = value

$是ruby中的'全局'辅助功能修饰符。您的应用中使用$variable的任何代码都将访问变量数据。

或者(我的首选方法),你可以使用类级方法:

class MyClass
  def self.logger
    @logger
  end
end

然后您可以使用MyClass.logger

在应用中的任意位置访问此内容

和第三,您可以将Constant指定为您想要的任何值(只要您以后不想更改该值)。

MyContant = myvalue

任何以大写字母开头的东西都是常数。