2012-01-26 52 views
1

我正在運行Ruby 1.9.2/Rails 3.0.9。Ruby/Rails - delayed_job Rails.env在我開發時是「開發」

我現在用的是collective idea fork of delayed_job

我開始delayed_job的,像這樣: RAILS_ENV=production script/delayed_job start

就會從我的生產數據庫作業。

但是,在處理它們時,Rails.env正在評估爲「開發」。 我正在做一些圖片上傳(使用回形針),他們將進入我的CDN主機上的「開發」目錄。

進一步的證據:

如果我在的delayed_job運行的代碼使用if聲明,Rails.env評估爲「發展」。

也就是說,

x = 1 
if Rails.env == "production" 
    x = 2 
end 

X仍然等於1

x = 1 
if Rails.env == "development" 
    x = 2 
end 

X現在等於2.

爲什麼Rails.env == 「發展」? 我該如何解決它?

謝謝。

+0

你的腳本/ delayed_job文件是什麼? – James

+0

我從來沒有碰過它: '需要File.expand_path(File.join(File.dirname(__ FILE__),'..','config','environment'))' 'require'delayed/command' ' 'Delayed :: Command.new(ARGV).daemonize' – johnnycakes

回答

1

您的Paperclip配置周圍的某處必須有「開發」硬編碼。我會做一個完整的源代碼搜索,看看是否是這樣。

+0

我不這麼認爲。回形針路徑通過:rails_env變量設置。我要用另一個例子/更多的證據來編輯我的原始文章。 – johnnycakes

+0

延遲工作不會將「開發」注入您的代碼。它顯然是硬編碼在你的代碼庫的某處。小小的錯誤會導致巨大的麻煩。只要做一個完整的源代碼搜索,看看是否是這種情況。 –

+2

大聲笑,哎,我有這個代碼美麗的小行的方法:如果 'FUNCTION_CALL Rails.env =「發展」' 我現在覺得愚蠢和憤怒。 感謝您的幫助。 – johnnycakes