我是Rails的新手。我想设置第三方脚本,我想为生产和开发设置环境变量,如API用户名和密码。 如何以安全的方式定义这些变量,以及如何在控制器中获取它们。
答案 0 :(得分:3)
您可以在应用程序的最高级别创建一个名为.env的新文件,以及Gemfile等文件。然后安装dotenv Ruby gem。在.env文件中,您可以添加环境变量,例如:
USERNAME=my_username
PASSWORD=password
然后,您可以在控制器中使用以下内容引用它们:
ENV["USERNAME"]
ENV["PASSWORD"]
答案 1 :(得分:3)
将figaro gem添加到您的Gemfile和bundle install
运行figaro install
。这将在config目录中创建一个名为 application.yml 的文件,它会将此文件添加到 .gitignore 文件中,以便git不会跟踪此文件而您也不会结束将文件发送到远程仓库。
您将密钥放在 config / application.yml 中,格式为
user_name: "very_long_user_name!!@$#!@$#$"
password: "long_password_7381a978f7dd7f9a1117"
您想要使用user_name或密码
的任何地方ENV["user_name"]
ENV["password"]
在heroku run figaro heroku:set -e production
答案 2 :(得分:2)
如果您使用的是Linux / Ubuntu计算机,请使用
只需附加
即可设置环境变量export API_USER_NAME=vipin
export API_PASSWORD=password
到 / home / user 路径末尾的 .bashrc 文件。
...在您的rails应用程序中,您可以使用
ENV["API_USER_NAME"]
ENV["API_PASSWORD"]
确保重新启动终端。
答案 3 :(得分:1)
这是我经常用于所有密钥/密码/等的精彩宝石:Figaro。
宝石易于遵循文档,可以解决您的问题。
E.g。 :
<强>配置/ application.yml 强>
pusher_api_id: "2954"
<强> controller.rb 强>
@pusher_id = ENV['pusher_api_id']