2015-07-02 64 views
0

我在應用程序和生產環境中使用Twilio我使用heroku的CLI設置了auth令牌。我使用sms-spechttps://github.com/monfresh/sms-spec)在本地測試我的應用程序的Twilio集成。我想在測試環境中將ENV['TWILIO_AUTH_TOKEN']設置爲我的令牌。在沒有放入源代碼的情況下在rails中設置測試環境變量

我使用警衛來自動運行我的測試,只要我進行更改,所以我不想在每次運行測試時都手動設置ENV變量。出於安全原因,我也不想將令牌放入源代碼中。

有沒有一種方法可以爲我的本地測試環境設置ENV變量,以便它是永久性的,而不是我的源代碼?我花了幾個小時研究這一點,似乎無法找到如何做到這一點的好解釋。任何幫助是非常讚賞:)

回答

1

兩種方法:

  1. 使用像Dotenvlink)的瑰寶。這是我在大多數應用程序開發中使用的方法。只需將gem包含在您的gemfile中,捆綁安裝,然後將任何環境變量設置存儲在名爲.env的頂級文件中。重新啓動你的rails服務器,ENV將自動加載。非常容易使用和方便。
  2. 如果您對ENV部分很靈活,並且正在運行Rails 4.1+,則可以使用config/secrets/yml。這在Rails 4.1 release notes的第2.2節中有很好的記載。所以,你的情況,你會設置它就像這樣:

    發展: twilio_auth_token:verysecretstring

然後,在你的初始化,而不是引用ENV['TWILIO_AUTH_TOKEN'],你會使用Rails.application.secrets.twilio_auth_token。我自己沒有嘗試過,但是它在我的列表中,因爲我寧願使用本機Rails功能而不是單獨的gem。

當然,任何包含您的祕密的文件都需要仔細保護。至少,確保你包含在.gitignore中,這樣你的祕密就不會進入你的代碼庫。

+0

感謝您的回答。這似乎是做伎倆:) – pthamm

相關問題