Это должно работать
if Product
# something
end
определено?ModelName возвращает ноль для всех моих моделей.
Loading development environment (Rails 2.3.8)
>> defined? Post
=> nil
Но тогда, если я сделаю это
>> Post; defined? Post
=> "constant"
Возможно, потому что ничего не загружено, пока вы не коснетесь его.Надеюсь, это поможет.
Редактировать : Хорошо, хорошо, тогда скрипт / бегун - это неинтерактивная форма скрипта / консоли, я думаю, он загружает все приложение Rails и запускается из него.контекст.Если вам нужно определить, был ли вызов сделан из скрипта / бегуна, я могу только подумать о передаче параметра в функцию Model.long_running_method (: runner => true) и выполнить вашу условную проверку по этому вопросу, или, если это недостаточно удобно, установитьконстанта ENV ENV ['thing_runner '].И вместо этого выполните проверку состояния.