РЕДАКТИРОВАТЬ: Поскольку вы находитесь на Heroku ...
Heroku это другая история.Использование ENV может противоречить некоторым функциям, встроенным в Heroku для обработки конфигурационных переменных, например тех, с которыми вы работаете.Вам нужно (барабанная дробь, пожалуйста) ... КОНФИГ. ВАРЫ .См. на этой странице в Heroku Dev Center для получения информации о том, как установить конфигурационные переменные в вашем развертывании Heroku, как получить к ним доступ из вашего приложения и как заставить все это работать локально.
РЕДАКТИРОВАТЬ: Ниже приведен оригинальный ответ, все еще применимый в общем (не геройском) случае
Даже если вы поместите его в environment.rb, он все равно будет в вашем источникеcode.
Правильный способ сделать это - игнорировать файл foo.yml в вашем контроле версий (например, в git вы бы добавили этот файл в файл .gitignore).Таким образом, у вас есть файл локально там, где он вам нужен, но он никогда не фиксируется в вашем хранилище, поэтому ваши кредиты не раскрываются.На вашем сервере развертывания вам также придется вручную создавать этот файл, поскольку при развертывании из исходного кода развертывание не будет иметь его.
Если вы используете capistrano для развертывания, общий подход будетчтобы поместить файл в [app] /shared/config/foo.yml, затем добавьте задачу развертывания в softlink из [sharedpath] в [releasepath].Такая задача в Капистрано может выглядеть так:
task :after_update_code do
run "ln -s #{shared_path}/config/foo.yml #{release_path}/config/foo.yml"
end