2017-08-27 114 views
0

我正嘗試在plesk服務器中託管一個應用程序。我創建了一個自定義變量作爲PRINTSCREEN: enter image description here通過PLESK環境在ruby中創建和使用自定義環境變量

我要訪問這個變量seed.rb文件,這樣就可以通過rake db:seed創建密碼的用戶。

這是正確的方法嗎?使用敏感數據(密碼)創建管理員用戶是否有更好更安全的方法?如果可以,請點教程。

編輯: 我將提供一些更多的信息

我用這個seeds.rb文件:

case Rails.env when "development" puts "Seeding: development mode!" ... when "production" puts "Seeding: production mode!" puts "ENV: #{ENV['admin_pass']}" end puts "Seeding finished!"

,當我使用運行rake任務的命令,Plesk能夠使我得到這個結果: Rake db:seed result

編輯#2:解決方案!

當我提供任務參數中的變量它的工作原理!但是如果我想以這種方式聲明更多的環境變量會怎麼樣? some solution

+1

這是一個很好的方法。您可以通過ENV哈希來訪問它。 –

+0

謝謝@max,但是當我用'puts ENV ['admin_pass']'在seed.rb中測試它時,我一無所獲。 –

+0

網頁表單是否具有key和val的輸入?還是你把它作爲一個字符串輸入? –

回答

0

我同意你對解決方案2的關注。解決方案的另一個問題是你不能共享其他應用程序進程的環境變量,例如:rails console或rails server。

另一種解決方案是使用​​來管理環境變量。

  1. 添加​​到Gemfile中
  2. 創建application.yml包含鍵值的配置,並上傳到config文件夾。

------配置/ application.yml ------

production: 
    admin_pass: hello 

然後嘗試再次運行rake db:seed任務。

+0

我已經嘗試過這個策略。在這個問題上我不喜歡的是密碼在一個文件中被硬編碼。我認爲figaro是一個很好的解決方案,用於部署和測試......而不是生產 –