2010-04-06 4 views
1

Je veux commencer mon serveur de développement Rails comme ceci:Comment définir une constante lors de l'exécution de script/serveur?

script/server OFFLINE_MODE=1 

et une méthode application_controller.rb qui vérifie la présence de cette constante:

helper_method :offline_mode? 
def offline_mode? 
    defined?(OFFLINE_MODE) ? true : false 
end 

donc je peux cacher des choses dans mon application quand je code sans accès à Internet. Pour une raison quelconque, OFFLINE_MODE ne semble jamais être défini et la méthode renvoie toujours false .. pensées?

Répondre

2

Essayez ceci:

script/server offline foo bar

Vos aides

helper_method :offline_mode?, :foo? 
def offline_mode? 
    ARGV.include?('offline') 
end 

# another example 
def foo? 
    ARGV.include?('foo') 
end 
+0

Sweet! Cela n'a pas vraiment marché, mais m'a conduit sur le bon chemin: http://zeke.tumblr.com/post/501363554/rails-on-a-plane – Zeke

+0

@Zeke, oui j'ai eu une erreur au début. J'ai corrigé mon exemple de code :) –

3

Vous pouvez utiliser une variable d'environnement pour ce faire:

OFFLINE_MODE=1 script/server 

def offline_mode? 
    defined?(ENV['OFFLINE_MODE']) ? true : false 
end 
+0

L'avantage évident est que vous pouvez 'exporter OFFLINE_MODE = 1' une fois pour votre session, alors toutes les commandes auront cet environnement var set. – rjh

Questions connexes