簡體   English   中英

如何在rake任務中設置Devise秘密密鑰

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM