在 Sinatra/Padrino 中,哪里是添加常量以供在路由内部使用的合理位置?
我正在使用 Padrino 挂载多个应用程序,因此我希望所有应用程序都可以使用常量。(所有应用程序都继承自基类。)
我使用Sinatra.helpers添加在路由内部使用的方法。
我希望对常量采用类似的方法。
更新
这似乎是一个范围界定问题,但我无法弄清楚这种情况下出了什么问题。
这是一个简化的 padrino 应用程序,它演示了这个问题:
应用程序.rb
class MyProject < Padrino::Application
register Padrino::Rendering
register Padrino::Mailer
register Padrino::Helpers
MY_CONST = 123
end
控制器.rb
MyProject.controller do
get "/" do
p self.class # => MyProject
p self.class.constants # => [:DATA_ATTRIBUTES, ... <snip>..., :MY_CONST, ... <snip>... ]
p MyProject::MY_CONST # => 123
p MY_CONST # => NameError - uninitialized constant MY_CONST
end
end