Ты не. В какой-то момент вы должны вставить этот материал, и он должен быть в открытом виде.
Обычно это проблема во время развертывания, когда вы не хотите, чтобы кто-либо с доступом для чтения к хранилищу просматривал конфигурацию базы данных серверов развертывания.
Я обошел это, имея собственную задачу capistrano, которая копирует (или символические ссылки) database.yml из домашнего каталога сервера в приложение.
(Так что в моем репозитории есть пустой database.yml, и он перезаписывается всякий раз, когда я публикую новую версию с секретной версией, которая уже присутствует на сервере)
Я писал об этом здесь:
http://www.tigraine.at/2011/09/25/securely-managing-database-yml-when-deploying-with-capistrano/
Что касается того, чтобы не делиться этим во время разработки: просто поместите database.yml в свой .gitignore, и он не будет зафиксирован