簡體   English   中英

有沒有辦法在類似於 rails.env 的 Ruby 應用程序中找到當前環境?

[英]Is there a way to find current environment in a Ruby application similar to rails.env?

我需要實現一項功能,根據當前環境(開發、測試、生產)有條件地設置一些環境變量。 我知道在 rails 中這可以通過 rails.env 來完成。 Ruby有沒有類似的方法?

不,香草 ruby 沒有“環境”的概念。 你將不得不自己構建它。 一種簡單的方法是使用環境變量並讀取它。

例如,您可以需要一個MYAPP_ENVIRONMENT環境變量。 然后你用myapp_environment = ENV['MYAPP_ENVIRONMENT']閱讀它。 然后你可能有散列或一些其他數據結構來確定特定於該環境的值:

ENDPOINT_A = {
    prod: 'https://prod.my_company.com',
    stage: 'https://stage.my_company.com'
}

其他變量也類似。 請注意,端點字符串是 ruby 變量,而不是環境變量。 您不應從使用它們的 ruby 代碼中設置環境變量。 環境變量的全部意義在於它們是在您的應用程序外部設置的,並且您的應用程序將它們作為輸入來配置它的行為方式。

如果要通過環境變量指定端點,則應在運行 ruby 應用程序的操作系統中進行設置。 您可以在機器上或通過部署管道或腳本手動執行此操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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