Rails环境变量相对或绝对路径
问题描述:
使用轨道4,我需要生成从在发展相对URL环境变量,和绝对酮在生产Rails环境变量相对或绝对路径
DEV: SOME_PATH = [导轨根]/SOME_PATH
PROD: SOME_PATH = [某些绝对路径]/some_other_path
我存储这些变量在一个YML文件,以下我发现there说明书。 什么是一个很好的方式/最佳做法来存储和生成这些变量?
例如,在我的阳明我可以这样写:
development:
DOCETUDE_PATH: some_path
production:
DOCETUDE_PATH: /home/public/some_other_path
而且在某个地方我的代码必须生成路径名的变量。这似乎工作,但看起来hackish:
if (ENV['DOCETUDE_PATH'].start_with?("/"))
MY_CST = Pathname.new(ENV['DOCETUDE_PATH']
else
MY_CST = File.join(Rails.root, ENV['DOCETUDE_PATH'])
end
答
如果这些是你的要求,那些是你的要求。
我可能会将其基于Rails环境而不是路径名称,以防发胖或包含路径与环境检查以确保没有人指责配置。
我可能会使用Ruby环境init文件而不是环境,所以它都是代码。
如果我做你的方式我会重构的一些代码,所以它看起来更像:
path = ENV['DOCETUDE_PATH']
MY_CST = relative_path?(path) ? Pathname.new(path) : File.join(Rails.root, path)
(并创建relative_path?
方法,当然,如果它不存在某处)。