2016-05-25 2 views
1

Я пытаюсь использовать ENV переменные в моем рельсах приложение и установить эти значения переменных в убунту 14.04Невозможно получить доступ к переменной ENV в рельсах

Я попытался установить с помощью команды экспорта

export mongodb_username="abc" 
export mongodb_password="cde" 

, а также попытался установить их в /и т.д./окружающей среды и в ~/.bashsrc

и прин TENV дает следующие результаты

>> printenv mongodb_username 
    => abc 
    >> printenv mongodb_password 
    => cde 

НО в рельсам APP или IRB выход следующих

>> ENV['mongodb_password'] 
=> nil 
>> ENV['mongodb_username'] 
=> nil 

я что-то отсутствует? Пожалуйста помоги!!!

+0

Это должно сработать. Вы запускаете Rails и irb в командной строке из той же оболочки, в которой вы устанавливаете эти переменные? –

+0

nopes. Из новой оболочки –

+0

@ KeithBennett он работал в одной оболочке –

ответ

3

При настройке значения переменной среды с использованием export это значение доступно только в оболочке, в которой она была установлена, и ее подоболочки. Поэтому вам нужно экспортировать эти переменные в каждую оболочку, в которой они вам нужны.

Однако, вы можете автоматизировать это, конечно.

Если у вас есть переменные, которые нужны часто, один подход поставить свои задания в сценарии оболочки, а затем источника сценария оболочки в любых оболочках, вам нужны их (см http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/x237.html подробнее об этом).

Если это нормально, чтобы иметь переменные будут действовать в всех ваших оболочек, то более простой способ, чтобы экспортировать их из сценария запуска (вероятно ~/.bashrc).

+0

Спасибо за помощь, это сработало, в основном я пытался запустить открытую оболочку вкладки, выполняемую до выполнения этих команд –