如果我的Rails environment.rb中有一个常量,例如......
SOME_CONSTANT = 3
是否有可能以某种方式在我的capistrano deploy.rb中访问它?这似乎很简单,但我无法弄清楚如何。
答案 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)存储此类配置信息,这些信息可以通过不同的工具轻松解析,而不必担心可能的副作用