前端之家收集整理的这篇文章主要介绍了
ruby-on-rails – Rails中的动态常量定义,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在Rails中使用以下语法定义一个常量:
MyModule.const_set('MYCONSTANT','foobar')
它起作用,如果我启动一个控制台和写
MyModule::MYCONSTANT
我预期会收到foobar.
问题是,当我尝试在模型中调用它时,常量不存在.
D应该在哪里动态地定义我的常数,它在我的模型中也可以使用?
如果我在我的lib / mymodule.rb中静态地定义它,它可以工作,但是我想在运行时定义一些常量.
可能在开发模式下
自动加载是问题吗?
您的模型类是为每个请求重新创建的,因此您需要一次又一次创建常量.
问题只会在生产模式中消失.您可以在开发模式下关闭自动加载,但这将迫使您在代码中每次更改后重新启动服务器.
请参阅config / environments / development.rb:config.cache_classes = false(更改为true).
原文链接:https://www.f2er.com/ruby/272746.html