[英]How can I set the Devise secret key inside a rake task
我想執行一個rake任務,但是它抱怨沒有設計秘密密鑰。 我希望使用task :mytask => :environment
來定義任務,但是我在調用rake任務時需要指定它。
我將我的秘密密鑰保存在.env-production
,通常會獲取文件,然后導出DEVISE_SECRET_KEY
。 但是我不想鍵入source .env-production && export DEVISE_SECRET_KEY && RAILS_ENV=production rake mytask
只是為了運行rake任務。
我試圖像這樣增強:environment
任務:
# lib/tasks/environment.rake
Rake::Task["environment"].enhance do
if Rails.env.production?
fn = ".env-production"
else
fn = ".env"
end
puts "Trying to read devise secret key from #{fn}"
match = File.read(fn).match /DEVISE_SECRET_KEY="(.*)"/
if match
Devise.secret_key = match[1]
ENV['DEVISE_SECRET_KEY'] = match[1]
puts "Found devise secret key"
else
puts "Couldn't find secret key"
end
end
但是它仍然抱怨不知道密鑰...有什么辦法可以使它起作用?
伙計,答案很簡單。
我只是將其更改為:
task :load_devise_key do
if Rails.env.production?
fn = ".env-production"
else
fn = ".env"
end
puts "Trying to read devise secret key from #{fn}"
match = File.read(fn).match /DEVISE_SECRET_KEY='(.*)'/
puts File.read(fn)
if match
Devise.secret_key = match[1]
ENV['DEVISE_SECRET_KEY'] = match[1]
puts "Found devise secret key"
else
puts "Couldn't find secret key"
end
end
task :environment => :load_devise_key
似乎已經完成了trick倆!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.