42 votes

Comment puis-je détecter si mon code s'exécute dans la console dans Rails 3?

J'ai ce code dans un initialiseur:

 if $0 == 'irb'
  # ...
end
 

Cela fonctionne bien avec Rails 2.3 mais dans Rails 3, la valeur de 0 $ est «script / rails», peu importe si elle a été démarrée avec les rails c ou les rails s. ARGV est un tableau vide. Comment puis-je détecter si l'application a été démarrée avec "rails c" ou "rails console"?

82voto

Aditya Sanghi Points 7754

Vous pourriez peut-être essayer cela

 if defined?(Rails::Console)
  # in Rails Console
else
  # Not in Rails Console
end
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X