对于我想在Rails应用程序中引用的一些Ruby脚本,我有两个单独的路径。第一个文件是Rails.root/lib/assets/myscript.rb
,第二个文件位于Rails.root/resources/repo/lib/myotherscript.rb
下。我如何在myotherscript
中引用myscript
?我已经知道要求相对路径等文件,但是如何从完全独立的文件树中完成引用?
答案 0 :(得分:0)
斯特凡说。
您可以使用require_relative来加载任何文件树中的任何文件。
外观:
$ cat /etc/hello.rb
module Hello
def say_hello
puts "Hello"
end
end
==============================
$ cat /Users/amalrik/code/use_hello.rb
require_relative '/etc/hello'
include Hello
say_hello
==============================
$ ruby use_hello.rb
Hello
编辑: 在这里,您可以查看rails上下文中的示例,并与您的解决方案进行比较: https://github.com/amalrik/require_relative_on_rails
编辑: 我只是意识到如果指定完整路径,require也会有效。所以我建议仔细检查你的代码是否有错别字。看:
$ cat /etc/hello.rb
module Hello
def say_hello
puts "Hello"
end
end
==============================
$ cat /Users/amalrik/code/use_hello.rb
require '/etc/hello'
include Hello
say_hello
==============================
$ ruby use_hello.rb
Hello
有关ruby加载路径的更详细说明,我建议阅读:$: == $LOAD_PATH