导入脚本 ipboard3.rb 的问题

我试图从我的 ipb 论坛导入数据,运行脚本 ipboard3 时出现以下错误:

script/import_scripts/ipboard3.rb:375:in `clean_up': undefined method `encode!' for nil:NilClass (NoMethodError)
root@forum:/var/www/discourse#  `clean_up': undefined method `encode!'

为什么会提示“未定义方法 ‘encode!’”?:confused:

这是因为调用时 raw 的值为 nil

因此,你需要找出是哪个函数调用了它,以及为什么它没有获取到帖子的原始数据。

我猜问题出在这一行:

           bio_raw: clean_up(u["pp_about_me"]),

如果是这样,那么可能需要修改 clean_up 函数,使其在接收到空数据时返回 nil

这样写可以吗?

if raw.to_i.zero?
return
end

我试过了,所有用户、主题和帖子都成功导入了,但帖子正文都是空的。你知道是什么原因吗?我觉得添加 “return nil” 可能不会有太大区别,你怎么看?
另外,所有私信也都导入了,但内容也是空的。

数据库查询不知为何出错了。它无法获取帖子内容的数据。

不,那样会触发得太频繁。试试这个:

return if raw.nil?

这很奇怪,因为我使用的是 IPB3,并且我检查了列名,它们是对应的 :open_mouth:

如果你执行脚本中使用的查询,它们是否返回了你所期望的数据?

你是否将

if raw.to_i.zero?

改为类似

if raw.length == 0

的形式?

"randome text".to_i.zero? 将始终为 true。