文件welcome.rb包含:welcome_message="hithere"但是在IRB中,我无法访问我刚刚创建的变量:require'./welcome.rb'putswelcome_message#=>undefinedlocalvariableormethod`welcome_message'formain:Object当您在IRBsession中require某些内容时,引入预定义变量并完成初始化工作的最佳方法是什么?全局变量似乎不是正确的路径。 最佳答案 虽然您确实无法访问所需文件中定义的局部变量,但您可以访问常量,并
假设我正在运行IRB并在控制台中输入:deffull_name(first,last)puts"Yourfullnameis:#{first,'',last}"end比如说,我想编辑它以包含参数middle,我该如何恢复相同的方法并编辑参数列表并编辑puts无需重新输入整个方法的声明?附言我知道这个例子很简单,我可以很容易地重新输入方法,但我正在试验更大的方法,为了简洁起见,我使用这个简单的方法。谢谢。 最佳答案 你不能。除了重新输入/重新粘贴,或按↑获取所有先前的语句,但对于较长的方法,这可能会非常困惑。为什么不在编辑器中键入您的
我现在在Dropbox/96_2013/work/ror/dmc/dmStaffing/QA/selenium_server_wyatt/spec/2day/units/我可以进入irb并需要一个文件,但它真的很长......require'/home/durrantm/Dropbox/96_2013/work/ror/dmc/dmStaffing/QA/selenium_server_wyatt/spec/2day/units/login_as_admin_spec.rb'=>true我想使用require_relative,如$cd/home/durrantm/Dropbox/96
有没有办法在内存中“重新加载”或“刷新”rubygem?当我在irb中玩游戏时,偶尔我想修改我的gem文件,如果我需要相同的gem,它不会更新到内存中并给出输出“false”。目前我必须退出IRB,重新进入IRB,然后再次需要gem,必须有更好的方法...它是什么? 最佳答案 正如其他人所建议的,您可以使用Kernel#load。但是,不要浪费时间查找和加载每个gem文件,因为所有需要的文件都存储在$"中。有了这些知识,这里有一个重新加载irb命令:defreload(require_regex)$".grep(/^#{requir
irb(main):001:0>require'active_support'=>trueirb(main):002:0>require'active_support/inflector/inflections'=>trueirb(main):003:0>ActiveSupport::Inflector.pluralize('test')=>"test"irb(main):004:0>ActiveSupport::Inflector.singularize('tests')=>"tests"irb(main):005:0>ActiveSupport::Inflector.titleiz
当我进入irb并输入一个不存在的命令时,我收到一条错误消息"undefinedlocalvariableormethod'my_method'formain:Object(NameError)"有没有办法只获取可用的局部变量或方法的列表?这对于探索ruby非常有用。 最佳答案 在内核、对象和模块中寻找方法:例如local_variables,instance_methods,instance_variables.还有其他很棒的方法。inspect是另一个。 关于ruby-从irb获取
我在OSX10.11.4上通过rbenv安装了Ruby2.3.0p0。在IRBsession中,历史记录工作正常。但是,我无法跨session访问IRB历史记录。我尝试了我的系统Ruby,2.0.0p648,并且跨IRBsession的历史记录工作正常。我尝试通过rbenv安装相同版本的Ruby,它也有工作历史。我比较了工作session和非工作session之间IRB.conf的值,看起来没有什么不合适的地方(尽管奇怪的是,irb/ext/save-history.rb在这两种情况下都是空白文件)。查看我的.irb_history文件,它似乎被最近session中的命令替换,而不是附
我有一个使用delayed_job运行的后台任务。我可以看到它确实从日志语句运行。与在前台运行相比,它似乎没有正确的结果,所以我想在IRB控制台中调试它。我正在运行后台任务rakejobs:work并且它不会触发调试器语句。如何加载调试器? 最佳答案 启动一个标准的rails控制台rubyscript/console并在此处启动一个worker,这将看到并触发调试器语句。worker=Delayed::Worker.newworker.start 关于ruby-on-rails-如何调试
我刚看完PragProgContinuousTestingWithRuby,他们讨论了在当前类的上下文中调用IRB以手动检查代码。但是,他们引用说,如果您在类中调用IRB.start,self是预定义的,并且指的是调用start时我们所在的对象这对我来说不是真的。即使是非常简单的例子a="hello"require'irb'ARGV.clear#otherwiseallscriptparametersgetpassedtoIRBIRB.start当我尝试访问a变量时,我得到了明显的结果NameError:undefinedlocalvariableormethod`a'formain:
我在用Ruby导入文件时遇到了一个非常菜鸟的问题。我正在WindowsXP中制作一个Ruby应用程序。该应用程序的所有类文件都在"C:/Documents/Prgm/Surveyor_Ruby/lib"中。但是当我在另一个文件中require一个文件时,ruby和irb都找不到所需的文件。当前目录的内容:C:\Documents\Prgm\Surveyor_Ruby\lib>dirVolumeindriveChasnolabel.VolumeSerialNumberisAAAA-BBBBDirectoryofC:\Documents\Prgm\Surveyor_Ruby\lib10/0