在Ruby on Rails应用程序中存储配置值(键,密码或只是配置值)的最佳位置在哪里?我搜索了很多,没有找到答案,我认为是正确的。Rails - 我在哪里存储配置值?
回答
想必您已阅读the rails guide for configuring applications?除此之外,每个gem通常会在安装后生成器中提供一个初始化程序/配置文件(如果需要),并将其记录在自述文件中。
如果涉及密码,我建议您将数据存储在外部文件中,以避免将敏感数据提交到存储库。 然后,可以通过读取在该文件中的初始值设定,加载数据到存储器例如:
配置/ my_secrets.yml:
development:
password: abcdefgh
test:
password: abcdefgh
配置/初始化/ load_my_config.rb:
MY_CONFIG = YAML.load_file("#{Rails.root.to_s}/config/my_secrets.yml")[Rails.env]
现在,您可以通过访问MY_CONFIG['password']
在任何环境中访问您的password
。 生产密码可以单独保存在服务器上(并在另一个安全位置)。
对于非敏感数据,我只是将数据直接放在初始化程序中。 (对于应用程序)
密码应该与由认证/授权宝石通过给定的请求,应用程序的代码红宝石来处理诸如设计,大减价,authLogic等
要可用变量可以存储在全局变量中。类级固定值可以存储在常量中。在控制器继承自application_controller的rails中,您可以在那里定义类级别常量。检查Ruby语言以获取这些变量类型变量的确切继承规则。
实际上,最好的做法是不要这样做,或者尽可能避免它,许多优秀的程序员会避免像鼠疫这样的问题。这意味着你的代码块没有被封装 - 这些动作现在依赖于外部值,并且通过使许多项依赖于可能在范围之外改变的一件事物而增加了耦合。
这是一个很棒的评论,迈克尔。对于将认证密钥存储在代码块外定义的常量上的想法感到好奇。这是一个可接受的项目来存储在别处吗? – thatdankent
- 1. 在哪里存储配置
- 2. 在angularjs我应该在哪里存储ui配置值
- 3. 在VS2008中,配置存储在哪里?
- 4. MEF零件配置,在哪里存储?
- 5. 在Laravel 5中应该在哪里存储配置值数组?
- 6. .data()在哪里存储值?
- 7. IDEA运行/调试配置*默认值*存储在哪里?
- 8. 哪里存储配置为一个rails插件
- 9. 我应该在哪里存储配置数据?
- 10. 我应该在哪里存储配置文件?
- 11. Rails:在哪里放置配置变量
- 12. 哪里存储角模板在Rails中?
- 13. Rails文件存储在哪里? db/development.sqlite3
- 14. NSXMLParser:哪里存储值?
- 15. 在哪里配置Rails 3 cache_store?
- 16. 在哪里存储不同的配置设置? C#服务
- 17. 记事本++在哪里存储样式配置器设置?
- 18. eclipse在哪里存储Navigator View配置的设置?
- 19. 如何/在哪里存储企业配置设置?
- 20. 我在哪里设置配置mapreduce.job.jvm.numtasks?
- 21. ExpressQuantumGrid存储的设置在哪里
- 22. ReSharper在哪里存储“Namespace Provider”设置?
- 23. Windows在哪里存储“Open With”设置?
- 24. mongo复制设置存储在哪里?
- 25. 存储对象的设置在哪里?
- 26. 全局设置存储在哪里?
- 27. MySQL在哪里放置存储过程?
- 28. Tridion存储元数据值在哪里?
- 29. 在哪里存储默认值asp.net
- 30. 存储的OID MIB值在哪里?
yml文件是公开可读的,但是,不是吗? – thatdankent
'未初始化的常量HomeController :: MY_CONFIG' – Alexandre
yml文件放置在服务器上,但它应该只对rails用户可读。 – Nicholas