如何在循环中运行`require_relative`?

时间:2015-06-16 19:35:37

标签: ruby

这是main.rb

(1..10).each{|x|
  require_relative 'script.rb'
}

这是script.rb,它位于同一目录中:

p "HELLO WORLD"

当我运行main.rb时,它只打印一次“HELLO WORLD”。

为什么呢?如何让它为loop passthru打印一次?

2 个答案:

答案 0 :(得分:3)

load允许重新加载,requirerequire_relative不允许:

(1..10).each{|x|
  load 'script.rb'
}

答案 1 :(得分:3)

将您要运行的代码移至main.rb或在script.rb内定义方法,以便您可以从main.rb调用该方法。

更多详情:How to reference a method in another Ruby code file?

在此方案中不使用load的原因:When to use `require`, `load` or `autoload` in Ruby?