Я новичок в Rails. Я хочу настроить сторонний скрипт, и я хочу установить переменные среды для производства и разработки, такие как имя пользователя и пароль API. Как я могу определить эти переменные безопасным способом и как я могу получить его в контроллере.Где определить переменные env и как их получить в Rails
ответ
Используйте 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
как насчет 'ENV.fetch ('user_name')'? – FedericoCapaldo
В случае, если вы используете машину Linux/Ubuntu.
Установите переменные окружения, просто добавляя
export API_USER_NAME=vipin
export API_PASSWORD=password
в файл .bashrc в /дома/пользователя путь в конце строки.
... и в приложении рельсы можно использовать
ENV["API_USER_NAME"]
ENV["API_PASSWORD"]
Убедитесь, чтобы перезапустить терминал.
Вы можете создать новый файл с именем .env на самом высоком уровне вашего приложения вместе с файлами, такими как ваш Gemfile и т. Д. Затем установите драгоценный камень Ruby dotenv. Внутри файла .env вы можете добавить свои переменные окружения, например:
USERNAME=my_username
PASSWORD=password
Вы можете ссылаться на них в контроллере с:
ENV["USERNAME"]
ENV["PASSWORD"]
Вот блестящий драгоценный камень, который я постоянно использовать для всех моих ключей/паролей/и т. д .: Figaro.
В этом драгоценном камне легко следовать документации, которая должна решить ваши проблемы.
E.g. :
конфигурации/application.yml
pusher_api_id: "2954"
controller.rb
@pusher_id = ENV['pusher_api_id']
- 1. Конкретные Rails Env переменные
- 2. Как определить торнадо Env переменные
- 3. Rails ENV Переменные
- 4. Где я могу установить переменные statis ENV в Rails?
- 5. Rails 4 - не может получить переменные ENV в производстве
- 6. Где переменные? Где их ценность?
- 7. Как сделать приложение Rails в OpenShift уведомлять новые переменные env
- 8. Rails: где поставить переменные конфигурации
- 9. Как получить переменные параметров и отобразить их
- 10. zsh heroku и Env Переменные
- 11. env переменные доступны в консоли rails, но не в приложении
- 12. Где относятся переменные окружения Rails 3?
- 13. Как использовать глобальные переменные и как их правильно определить?
- 14. Powershell env: переменные dir
- 15. Линия проектирования: где определить переменные
- 16. Передайте временные переменные ENV в Heroku
- 17. Где определить переменную Rails в application.html.erb
- 18. чтение рельсов env переменные от rspec
- 19. Mod Rewrite Env переменные
- 20. Python: установить переменные из среды и получить их по имени
- 21. Переменные ENV равны нулю в режиме производства
- 22. Как глобальные переменные доступны в многопоточном env?
- 23. Где определить константы и использовать их где угодно?
- 24. Докер сохраняет переменные ENV
- 25. Развернуть переменные env в String
- 26. Stripe w/Ruby on Rails Переменные ENV в Javascript
- 27. Rails ActiveRecord: где определить метод?
- 28. Как я могу расшифровать безопасные переменные env?
- 29. Где определить все мои константы/глобальные переменные?
- 30. Где и как определить константу в Symfony?
Почему бы не определить '' Username' & Password' в соответствующих средах, таких как ** development.rb ** и ** production.rb ** – Abhi
@Abhi Не рекомендуется использовать конфиденциальную информацию, такую как имя пользователя и пароль для вашего источника, поэтому 'development.rb' и' production.rb' не являются хорошим местом t o сохранить эту информацию. @Vipin спросил, как они могут это сделать _securely_. –