MyModule.const_set('MYCONSTANT','foobar')
它起作用,如果我启动一个控制台和写
MyModule::MYCONSTANT
我预期会收到foobar.
问题是,当我尝试在模型中调用它时,常量不存在.
D应该在哪里动态地定义我的常数,它在我的模型中也可以使用?
如果我在我的lib / mymodule.rb中静态地定义它,它可以工作,但是我想在运行时定义一些常量.
您的模型类是为每个请求重新创建的,因此您需要一次又一次创建常量.
问题只会在生产模式中消失.您可以在开发模式下关闭自动加载,但这将迫使您在代码中每次更改后重新启动服务器.
请参阅config / environments / development.rb:config.cache_classes = false(更改为true).