Передать константу Rails в файл конфигурации?

Я использую сервер приложений puma, и у него есть файл конфигурации по адресу config/puma.rb:

path = "/home/starkers/Documents/" + Rails.application.class.parent_name + "/tmp/puma/"

threads 0,20

environment "production"


daemonize true
bind  "unix://" + path + "socket/puma.sock"
pidfile path + "pid/puma.pid"
state_path path + "pid/puma.state"

При запуске puma -C config/puma.rb для загрузки этого файла и запуска сервера приложений все работает, кроме Rails.application.class.parent_name.

Можете ли вы придумать, как получить константы в файл puma.rb? В противном случае, я полагаю, обходной путь, который получает имя каталога корня, будет работать.

Я хотел бы также использовать этот атрибут в конфигурации, Rails.root, но мне нужно получить константу Rails! Нужно ли мне использовать require?


person Starkers    schedule 13.11.2013    source источник


Ответы (1)


Вам нужно будет загрузить все приложение Rails, чтобы получить доступ к этому объекту. Вы сможете сделать это с помощью require 'config/environment' в верхней части puma.rb.

person tony_winn    schedule 13.11.2013
comment
Спасибо. Я понимаю, что это замедлит процесс, но только один раз при загрузке сервера. - person Starkers; 14.11.2013
comment
Не то чтобы это имело значение, но если бы кто-то мог придумать способ просто загрузить константу Rails, а не всю среду, это было бы хорошо. Не знаю, можно ли это сделать :) - person Starkers; 14.11.2013
comment
Да, это точно затормозит. Возможно, вы захотите получить то же самое, не используя класс Rails, может быть, вы могли бы получить то, что вам нужно, используя класс ruby ​​File? - person tony_winn; 14.11.2013
comment
Я почти уверен, что константа Rails — это все или ничего. - person tony_winn; 14.11.2013
comment
Ага, так и думал. Я использую константу Ruby Dir, чтобы получить то, что хочу. Я думаю, что это работает, спасибо за предложение! - person Starkers; 14.11.2013