gpt4 book ai didi

ruby - 让我的 Ruby 文件加载到 Pry 中?

转载 作者:数据小太阳 更新时间:2023-10-29 06:52:49 24 4
gpt4 key购买 nike

我正在尝试使用 Pry 编辑我的 Ruby 文件。其中设置的变量很少,无论出于何种原因,我似乎无法 cd 进入它们,因为即使在我“加载”文件后它们也没有被定义。

代码如下:

require 'nokogiri'
require 'open-uri'

doc = Nokogiri.XML('<foo><bar /><foo>', nil, 'UTF-8')

url = "http://superbook.eventmarketer.com/category/agencies/"

puts "Finished!"

在 Pry 中我这样做:

load "./AgencyListingScraper.rb"

然后这是输出:

7] pry(main)> load './AgencyListingScraper.rb'
Finished!
=> true
[8] pry(main)>

然后当我尝试做类似的事情时:

[8] pry(main)> url
NameError: undefined local variable or method `url' for main:Object
from (pry):6:in `__pry__'
[9] pry(main)> cd url
Error: Bad object path: url. Failed trying to resolve: url. #<NameError: undefined local
variable or method `url' for main:Object>
[10] pry(main)>

这是我得到的。

我想我没有正确加载文件,尽管我已经搜索了几个小时而且我不知道如何正确地执行此操作。几个月前,当我用 Ruby 制作一个爬虫时,我就在做这件事,但这次我因为这一点而在刚开始时遇到了麻烦。

提前感谢您的帮助!

最佳答案

这样试试:

在您的文件中包含 Pry 并执行 binding.pry:

require 'nokogiri'
require 'open-uri'
require 'pry'

doc = Nokogiri.XML('<foo><bar /><foo>', nil, 'UTF-8')

url = "http://superbook.eventmarketer.com/category/agencies/"

binding.pry
puts "Finished!"

然后通过执行来运行文件:

ruby AgencyListingScraper.rb 

这会让您进入 Pry session ,您可以在其中使用 ls 等命令查看所有变量。

您使用 Pry 的方式和这种方式都有效。但是,load 在您的情况下可能不起作用的原因是局部变量不会跨文件传递,例如当您从另一个文件需要一个文件时。

尝试加载这个文件:

#test.rb
y = "i dont get carried over cause i am a local variable"
b= "i dont get carried over cause i am a local variable"
AAA= "i am a constant so i carry over"
@per = "i am an instance var so i get carried over as well"

当您使用 load "test.rb" 在 Pry 中加载它时,您可以看到您无法访问该文件中的局部变量。

关于ruby - 让我的 Ruby 文件加载到 Pry 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20821166/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com