2010-04-06 45 views
1

我要開始我的Rails開發服務器這樣的:如何在運行腳本/服務器時定義常量?

script/server OFFLINE_MODE=1 

,並在application_controller.rb的方法來檢查該常量的存在:

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

所以我可以隱藏的東西在我的應用程序,當我編碼沒有訪問互聯網。出於某種原因,OFFLINE_MODE似乎沒有被定義,並且該方法總是返回false ..思想?

回答

2

試試這個:

script/server offline foo bar

你的助手

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

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

甜!這並不奏效,但讓我走上了正確的道路:http://zeke.tumblr.com/post/501363554/rails-on-a-plane – Zeke 2010-04-06 23:50:47

+0

@Zeke,是的,我起初有一個錯誤。我修正了我的代碼示例:) – 2010-04-06 23:51:39

3

你可以使用一個環境變量來做到這一點:

OFFLINE_MODE=1 script/server 

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

顯而易見的優勢是,您可以爲您的會話「導出OFFLINE_MODE = 1」一次,然後所有命令都將設置該環境變量。 – rjh 2010-04-06 23:55:58

相關問題