2015-05-18 2 views
1

Я новичок в Rails. Я хочу настроить сторонний скрипт, и я хочу установить переменные среды для производства и разработки, такие как имя пользователя и пароль API. Как я могу определить эти переменные безопасным способом и как я могу получить его в контроллере.Где определить переменные env и как их получить в Rails

+0

Почему бы не определить '' Username' & Password' в соответствующих средах, таких как ** development.rb ** и ** production.rb ** – Abhi

+0

@Abhi Не рекомендуется использовать конфиденциальную информацию, такую ​​как имя пользователя и пароль для вашего источника, поэтому 'development.rb' и' production.rb' не являются хорошим местом t o сохранить эту информацию. @Vipin спросил, как они могут это сделать _securely_. –

ответ

1

Используйте Figaro камень figaro gem

Добавить в свой Gemfile и bundle install

Пробег figaro install. Это создаст файл с именем application.yml в каталоге конфигурации, и он добавит этот файл в файл .gitignore, чтобы git не отслеживал этот файл, и вы не в конечном итоге отправляете файл на удаленное репо. Вы вводите свои ключи в конфигурацию/приложение .YML в этой форме

user_name: "[email protected]$#[email protected]$#$" 
password: "long_password_7381a978f7dd7f9a1117" 

Везде, где вы хотите использовать имя_пользователя или пароль

ENV["user_name"] 
ENV["password"] 

Чтобы установить ключи на Heroku запустить figaro heroku:set -e production

+1

как насчет 'ENV.fetch ('user_name')'? – FedericoCapaldo

2

В случае, если вы используете машину Linux/Ubuntu.

Установите переменные окружения, просто добавляя

export API_USER_NAME=vipin 
export API_PASSWORD=password 

в файл .bashrc в /дома/пользователя путь в конце строки.

... и в приложении рельсы можно использовать

ENV["API_USER_NAME"] 
ENV["API_PASSWORD"] 

Убедитесь, чтобы перезапустить терминал.

3

Вы можете создать новый файл с именем .env на самом высоком уровне вашего приложения вместе с файлами, такими как ваш Gemfile и т. Д. Затем установите драгоценный камень Ruby dotenv. Внутри файла .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'] 
Смежные вопросы