我想寫一個Rails 3 rake
任務來產生config/initializers/secret_token.rb
。我想拉取應用程序的名稱,而不是在rake任務中對其進行硬編碼,但@app_name
尚未填充,也不是ENV['APP_NAME']
。這裏的任務代碼:如何在Rake任務中獲取Rails應用程序名稱?
desc "Regenerate the server secret"
task :generate_secret do
include ActiveSupport
File.open('config/initializers/secret_token.rb', 'w') do |f|
f.puts "#{@app_name}::Application.config.secret_token = '#{SecureRandom.hex(30)}'"
end
end
它除了@app_name
所有的作品是空白。我如何在這裏檢索應用程序名稱?
當我需要':environment',我得到一個錯誤:「(我的應用程序名)是不是類/模塊」。跟蹤顯示:**調用引導程序:generate_secret(first_time) **調用環境(first_time) **執行環境 rake中止! –
...我不知道爲什麼,因爲我在那個需要':environment'的.rake文件中有另一個任務,並且它工作正常。 –
......現在,在玩弄它之後,突然它可以正常工作。這個魔法裏面有一個gremlin(在運行這些任務時會緩存任何東西嗎?),但它現在似乎正在工作。謝謝你的幫助! –