无法找到ruby文件
我是Ruby的绝对初学者。 我创建了一个小的ruby文件,当我运行命令ruby "methods.rb"
时它运行良好。 这意味着我在正确的目录中。
但是当我启动irb并运行命令require "methods.rb"
,我得到以下响应:
LoadError: cannot load such file -- methods.rb from /usr/local/rvm/rubies/ruby-1.9.3-p392/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:53:in `require' from /usr/local/rvm/rubies/ruby-1.9.3-p392/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:53:in `require' from (irb):1 from /usr/local/rvm/rubies/ruby-1.9.3-p392/bin/irb:16:in `'
默认情况下,Ruby不会将当前路径添加到加载路径。
从irb,您可以尝试使用require "./methods.rb"
代替。
我在目录/home/kirti/Ruby
有一个名为so.rb
的ruby文件。 所以首先从IRB我将使用Dir#chdir
方法更改我当前的工作目录。 然后我会调用#load
或#require
方法。 我的so.rb
文件只包含p hello
行。
我会这样走:
>> Dir.pwd => "/home/kirti" >> Dir.chdir("/home/kirti/Ruby") => 0 >> Dir.pwd => "/home/kirti/Ruby" >> load 'so.rb' "hello" => true >> require './so.rb' "hello" => true
要将正在执行ruby脚本的目录添加到加载路径,请使用:
$LOAD_PATH.unshift( File.join( File.dirname(__FILE__), '' ) )
或者如果您已将依赖项放在当前目录的“subdir”中:
$LOAD_PATH.unshift( File.join( File.dirname(__FILE__), 'subdir' ) )
如果要在IRB中加载当前目录中的内容,可以执行以下操作:
irb -I.
注意那里的’点’,表示当前目录。
如果您正在探索并在该文件中进行更改,那么当您使用IRB时,请使用load
而不是`require
as load
,您可以加载更改,而require
将只允许文件一次。 这意味着您无需退出IRB即可查看更改受到的影响。
要找出IRB的选项,你可以使用irb --help
,如果你正在学习这个工具,这是很好的做法。