Възможно ли е да се провери средата на релсите за коя рейк задача се изпълнява?

Има ли променлива на средата, която мога да използвам в моите rails инициализатори, за да определя дали се изпълнява рейк задача? Харесвам -- rake db:migrate db:seed

Имам куп инициализатори, които могат да бъдат пропуснати за повечето рейк задачи:

  • Не зареждайте spring (това е проект на jruby)
  • Не зареждайте наблюдателя за проверка, който нарушава миграцията

Актуализация:

Вероятно ще съжалявам за това по-късно - но следното изглежда работи -

В моя application.rb -- добавих следното:

config.is_rake = (File.basename($0) == 'rake')

След това проверявам стойността по-късно

config.active_record.observers = :audit_observer unless config.is_rake

На друго място в моя пролетен инициализатор

SPRING_CONTEXT = org.springframework.context.support.FileSystemXmlApplicationContext.new(SPRING_XML_CONFIG_FILES) unless Rails.application.config.is_rake

Въз основа на отговор намерен тук


person stringaling    schedule 08.11.2011    source източник
comment
не съм сигурен какво да правя в stack overflow land -- доволен съм от внедряването си -- трябва ли да отговоря на това? Изтрий го ?   -  person stringaling    schedule 09.11.2011
comment
Оставете го някой да го намери по-късно.   -  person Chuck Vose    schedule 12.09.2012
comment
+1 Имахме подобна нужда. И мисля, че този config.is_rake ще бъде добро начало. Ние също имаме Spring и не искаме да стартира по време на рейк задачи, но по-конкретно неща като компилация на активи или в rails конзолата.   -  person mrjabba    schedule 20.10.2012