Указание значений констант с помощью '||' - PullRequest
0 голосов
/ 06 августа 2011

Я использую Ruby on Rails 3.0.9 и разрабатываю плагин. Я хотел бы знать, правильно ли указывать постоянное значение следующим образом (обратите внимание на ||):

CONSTANT_NAME ||= "Constant_value"

Это правильный \ гарантированный подход к вышесказанному?

P.S. : Я хотел бы сделать это, чтобы избежать регистрации предупреждающих сообщений, подобных приведенным ниже, в файле Apache error_log:

/<RAILS_ROOT>/vendor/plugins/sample_plugin/lib/sample.rb:52: warning: already initialized constant CONSTANT_NAME

1 Ответ

0 голосов
/ 06 августа 2011

Кажется неуклюжим определять константы в нескольких местах. Я даже не понимаю, зачем тебе это нужно. Лучшее решение может быть предоставлено, если вы предоставите больше контекста.

В любом случае, хитрость может заключаться в создании константы в виде Hash. Затем в любом месте вашего приложения вы можете определить / переопределить его содержание. Что-то вроде:

CONFIG = { :foo => "bar" } 

Тогда где-нибудь еще:

CONFIG[:foo] ||= baz

Редактировать:

С вашим контекстом gem я бы сказал, что вам лучше избегать включения константы на уровне модели: вам не придется беспокоиться, если многие модели ее используют.

Определите его на уровне приложения, например, внутри вашего основного acts_as_something.rb файла.

...