在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