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