在哪里可以将不可本地化的固定字符串存储在轨道中?

时间:2016-06-01 06:01:36

标签: ruby-on-rails string constants

我有一些我在我的应用中使用的网址模板 - 它们不是可本地化的字符串,所以config / locales / en.yml似乎不是最适合他们的地方 - 我在哪里存储这些?例如,“http://www.example.com/apps?id=”就是这样一个字符串。

我知道有几种方法可能(lib文件夹中的常量文件,或者在rails4中使用rails配置,或者像configatron那样使用某些配置文件),但是什么是'正确'的方式?

2 个答案:

答案 0 :(得分:1)

我不知道有“正确的方法” - Rails 4中新的'x'配置选项系统似乎是最“Railsy”解决方案。

我个人认为在初始化程序或lib目录中的文件中定义GlobalConstants模块是完全可以的。将所有全局常量放在那里,并在需要时在整个应用程序中使用它们。

对于i18n字符串混合和匹配的项目,我喜欢使用“基础”i18n文件,然后使用覆盖系统在i18n文件之间创建一种继承链。这并不总是合适的解决方案,但我已经很好地完成了几次。

希望对你有所帮助。

答案 1 :(得分:1)

正如你所说,有许多解决方案,它依赖于使用。

您可以将它们存储在环境变量中。 dotenv gem帮助您更轻松地处理它:

https://github.com/bkeepers/dotenv