簡體   English   中英

如何在Capistrano部署腳本中使用Rails環境變量?

[英]How to use a Rails environment variable in Capistrano deploy script?

例如,如果我在Rails environment.rb中有一個常量,則...

SOME_CONSTANT = 3

是否可以通過我的capistrano deploy.rb訪問此文件? 看起來很簡單,但是我不知道怎么做。

最終工作:

創建了一個文件config/initializers/my_constant.rb

將我的常量放到那里(rails自動將文件加載到那里,因此我可以在我的應用中使用該常量)

然后在deploy.rb中添加load 'config/initializers/my_constant'以便也可以在其中使用它。

您應該通過ENV []哈希(這是Ruby)來訪問它,這是使用TERM環境變量的示例。

puts "Your Terminal is #{ENV['TERM']}"

如果需要紅寶石常量,請從Rails環境中加載它:

require 'config/environment'

請注意,這將加載整個應用程序環境,應該考慮使用類似AppConfig或SimpleConfig(在此處插入其他工具)之類的東西來存儲配置,然后只需要加載用於處理配置文件的工具即可。

為什么不在lib /的文件中定義這些常量,然后在Rails應用程序和Capfile中都要求該文件呢?

由於該值不僅由rails應用程序使用,因此我可能會以與語言無關的格式(yaml,json,ini,xml)存儲此類配置信息,該格式信息可以通過其他工具輕松解析,而不必擔心可能產生的副作用。

暫無
暫無

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

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