如何在Capistrano部署脚本中使用Rails环境变量?

时间:2009-11-26 19:05:41

标签: ruby-on-rails capistrano

如果我的Rails environment.rb中有一个常量,例如......

SOME_CONSTANT = 3

是否有可能以某种方式在我的capistrano deploy.rb中访问它?这似乎很简单,但我无法弄清楚如何。

4 个答案:

答案 0 :(得分:3)

这最终起作用了:

创建了一个文件config/initializers/my_constant.rb

把我的常量放在那里(rails会自动加载那里的文件,所以我可以在我的app中使用常量)

然后在deploy.rb中添加了load 'config/initializers/my_constant',因此也可以在那里使用它。

答案 1 :(得分:2)

你应该通过ENV []哈希访问它(这是一个Ruby的东西),这是一个使用TERM环境变量的例子。

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

如果您需要ruby常量,则应从rails环境中加载它:

require 'config/environment'

请注意这将加载整个应用程序环境,您应该考虑使用AppConfig或SimpleConfig(此处插入其他工具)来存储配置,然后您只需加载处理配置文件的工具。

答案 2 :(得分:1)

为什么不在lib /中的文件中定义这些常量,然后在Rails应用程序和Capfile中都需要该文件?

答案 3 :(得分:0)

由于该值不仅由rails应用程序使用,我可能会以语言无关的格式(yaml,json,ini,xml)存储此类配置信息,这些信息可以通过不同的工具轻松解析,而不必担心可能的副作用