2015-03-15 1 views
1

Я использую RubyMine 7.0.4 для создания приложения Rails (4.2.0) с Postgres в качестве моей базы данных. Я использую переменные среды для хранения моей локальной конфигурации (DB_USERNAME и DB_PASSWORD), но RubyMine не может проанализировать встроенный ruby ​​в файле database.yml.Встраиваемый Ruby в database.yml не анализируется в RubyMine

database.yml выдержка:

... 
development: 
    <<: *default 
    database: my_app_development 
    username: <%= ENV['DB_USERNAME'] %> 
    password: <%= ENV['DB_PASSWORD'] %> 
... 

RubyMine Error Popup

Я даже пытался переключая его фактические полномочия в <% =%> тегов, но тот же вопрос:

... 
development: 
    <<: *default 
    database: my_app_development 
    username: <%= 'my_app' %> 
    password: <%= 'password' %> 
... 

Кажется, это проблема RubyMine, поскольку все прекрасно выполняется из командной строки/приложение работает нормально. Тем не менее, мне нравится, когда моя база данных интегрирована с IDE, поэтому было бы здорово, если бы я смог снова работать.

Есть ли что-нибудь, что я могу сделать для выполнения встроенного рубина вместо того, чтобы рассматривать его как строку?

+0

Попробуйте переименовать базу данных.yml в базу данных.yml.erb. Как я помню, файлы читаются справа налево: это означает, что сначала ваши <%= %> читаются и помещаются в «нормальный» ямль. – Klaus

+0

Это была хорошая идея. Я просто попробовал переименовать его, но никаких изменений - мое приложение все еще понимает erb в yaml, но RubyMine этого не делает. – Lee

ответ

1

Это ошибка в RubyMine, которая, к сожалению, пока не исправлена.

Для получения дополнительной информации, пожалуйста, обратитесь к https://youtrack.jetbrains.com/issue/RUBY-9223

Единственного исправления мне удалось придумать до сих пор, чтобы добавить database.yml в файл .gitignore (если вы толкая свой проект к удаленному repo) и сохранить имя пользователя и пароль как обычный текст.

Второй подход мог бы просто ввести ваши db_password и db_username в виде простых текстов для баз данных разработки и тестирования и использовать ENV ["DB_USERNAME"] и ENV ["DB_PASSWORD"] только для производственной базы данных.