我是Rails的新手。我想設置第三方腳本,我想爲生產和開發設置環境變量,如API用戶名和密碼。 如何以安全的方式定義這些變量,以及如何在控制器中獲取它。在哪裏定義env變量以及如何在Rails中獲取它們
1
A
回答
1
添加費加羅寶石你的Gemfile和bundle install
運行figaro install
。這將在config目錄中創建一個名爲application.yml的文件,並且它會將此文件添加到.gitignore文件中,以便git不會跟蹤此文件,並且不會最終將文件發送到遠程回購站。 你把你的鑰匙放在config/application中。YML以這種形式
user_name: "[email protected]$#[email protected]$#$"
password: "long_password_7381a978f7dd7f9a1117"
不管你想要去使用USER_NAME或密碼
ENV["user_name"]
ENV["password"]
要設置你的鑰匙在Heroku上運行figaro heroku:set -e production
+1
'ENV.fetch('user_name')'? – FedericoCapaldo
2
在使用Linux/Ubuntu機器的情況下。
由剛剛在/home/user中在行尾路徑追加
export API_USER_NAME=vipin
export API_PASSWORD=password
您的.bashrc文件設置環境變量。
...在你的Rails應用程序,你可以使用
ENV["API_USER_NAME"]
ENV["API_PASSWORD"]
確保重啓終端。
3
您可以在您的應用程序的最高級別創建一個名爲.env的新文件,以及諸如Gemfile等文件。然後安裝dotenv Ruby寶石。裏面的.ENV文件,你可以添加你的環境變量,例如:
USERNAME=my_username
PASSWORD=password
然後你可以在你的控制器引用這些:
ENV["USERNAME"]
ENV["PASSWORD"]
1
這是一個輝煌的寶石,我經常使用的所有我的鑰匙/密碼/等:Figaro。
該寶石很容易遵循文件,應該解決您的問題。
E.g. :
配置/ application.yml
pusher_api_id: "2954"
controller.rb
@pusher_id = ENV['pusher_api_id']
相關問題
- 1. 會話變量存儲在哪裏以及我們如何看?
- 2. 我在哪裏把統計ENV變量在Rails中?
- 3. 在哪裏存儲密碼鹽以及如何獲取它
- 4. Laravel Vue env變量在哪裏?
- 5. Jinja2變量和文件位於哪裏以及如何找到它們?
- 6. 在Rails中,如何以及在哪裏定義一個稍微改變現有Rails方法的新方法
- 7. 在哪裏定義NSArray以及在哪裏定義按鈕操作?
- 8. Virtuemart $變量。我可以在哪裏學習/輸出它們?
- 9. URL重定向 - 在哪裏以及如何編寫它?
- 10. 如何在nginx中使用.htaccess以及在哪裏放置它?
- 11. 我可以在哪裏測試Rails中ENV值的存在性?
- 12. getActivity()它在哪裏定義?
- 13. Rails 5緩存,它在哪裏存儲以及如何清除它?
- 14. 摩卡回調在哪裏以及如何定義?
- 15. 如何以及在哪裏調用外部定義的結構
- 16. 在哪裏以及如何定義django模型對象屬性?
- 17. 添加自定義Util類在哪裏以及如何?
- 18. 我在哪裏定義我的變量?
- 19. 這個變量在哪裏定義?
- 20. 在哪裏定義了python變量
- 21. 這個「posts_path」變量在哪裏定義?
- 22. 「addtocart_form.tpl.php」的變量定義在哪裏?
- 23. joomla Virtuemart $ addtocart變量定義在哪裏
- 24. Smarty模板變量定義在哪裏?
- 25. 在rails中定義的I18n.localize在哪裏?
- 26. 我在哪裏可以找到Amazon Cognito Identity SDK的類型定義文件(* .d.ts)以及如何使用它們
- 27. CMAKE在哪裏獲取環境變量?
- 28. 即將到期的鏈接以及在哪裏存儲它們
- 29. 在哪裏以及如何在C
- 30. 結構問題,在哪裏放置它們以及如何在標題中引用它們?
爲什麼不定義'Username'&'Password'如** development.rb **和** production.rb ** – Abhi
@Abhi在各自的環境中,通常不推薦像源代碼和密碼這樣的敏感信息到你的源代碼控制,所以'development.rb'和'production.rb'不是一個好地方o存儲此信息。 @Vipin問他們如何能夠做到這一點_securely_。 –