我有一个我在/ lib文件夹中创建的自定义类:
/lib/user_service.rb
我的/ config文件夹中也有一个user_service.yml文件。
我想将此yml文件传递给我的UserService类,并设置一些类级变量。
我不确定如何创建类变量以及如何设置这些变量。
我的yaml文件包含:
user_service_url: http://www.example.com/user_service/
user_service_table: "UserTable1"
所以我的UserService类应该具有可公开访问的这两个属性,并且它们是类变量(因此您不需要实例来访问它,但实例应该能够引用它)。
有人可以帮我这个吗?
/lib/user_service.rb
module MYAPP
class UserService
end
end
答案 0 :(得分:2)
您可以将yaml文件加载到类的哈希中,如下所示:
module MYAPP
class UserService
SERVICES = YAML::Load(File.open(filepath))
end
end
然后您可以访问这两个变量,如下所示:
UserService::SERVICES['user_service_url']
如果您想在没有哈希引用样式的情况下访问它们,您可以编写深入研究哈希的方法,或者实现method_missing,以便在触发时进行哈希查找。