是否可以要求带有参数的文件?
例如
resource.rb 有
mode = ARGV.first
if mode == "prod"
#use prod db
else
#use test db
end
并且 main.rb 需要它带有类似 params 的东西
require_relative './resource.rb prod'
如果这不可能或不好的做法,请告诉我。我想我可以使用版本控制在测试和生产之间切换,但它似乎有点迟钝。
(prod 和 test 仅用于区分。这是一个非常轻量级的项目,如果它有任何区别就不是商业的:))
感谢在 Windows XP 上使用 Ruby 1.9.3。
令我惊讶的是,目前还没有任何答案。只有关于使用 gems 和使用带参数的 ruby 的内容,但不能同时使用。
最佳答案
你不能通过要求来做到这一点,但你可以设置一个环境变量:
在main.rb
中:
ENV["mode"] = ARGV.first
require_relative './resource'
在./resource.rb
中:
mode = ENV.fetch("mode")
if mode == "prod"
#use prod db
else
#use test db
end
使用环境变量进行配置的好处是您可以在多个文件中拥有相同的逻辑。这就是 Heroku 的做事方式。
关于ruby - 使用参数与 ruby require,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14051547/