调试Ruby脚本调用方法报NameError 如何正确传参读取new_key数据
解决方案
报错根因
你收到的NameError是因为在Rails控制台的主运行上下文中,传入方法的target_folder变量未提前定义,不存在于当前作用域。
正确调用方法
先在Rails控制台中给target_folder赋值为你实际要使用的目标文件夹路径,再调用方法即可,示例如下:
# 替换为你的实际目标路径 target_folder = '你要使用的目标文件夹路径' # 再执行方法调用 Courts::Aws::S3Util.new('bucket_name').move_objects(target_folder)
调试读取new_key的方法
你代码中已经插入了binding.pry断点,调用方法后程序会自动停在断点位置,此时直接在控制台输入对应变量名即可查看值:
- 输入
new_key可直接读取当前循环生成的新key值 - 输入
obj.key可查看当前S3对象的原始key - 输入
s3_folder可确认前缀替换的源前缀是否符合预期 - 逐行执行下一行代码输入
next,直接终止调试输入exit!
如果调用方法后没有触发断点,确认开发环境已安装pry或pry-railsgem,未安装的话在Gemfile添加对应依赖后执行bundle install,重启Rails控制台即可。
内容的提问来源于stack exchange,提问作者user16741832
相关产品推荐
相关产品推荐

