dr3adx
(Dr3adx)
1
我试图从我的 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!’”?
pfaffman
(Jay Pfaffman)
2
这是因为调用时 raw 的值为 nil。
因此,你需要找出是哪个函数调用了它,以及为什么它没有获取到帖子的原始数据。
我猜问题出在这一行:
bio_raw: clean_up(u["pp_about_me"]),
如果是这样,那么可能需要修改 clean_up 函数,使其在接收到空数据时返回 nil。
dr3adx
(Dr3adx)
4
这样写可以吗?
if raw.to_i.zero?
return
end
我试过了,所有用户、主题和帖子都成功导入了,但帖子正文都是空的。你知道是什么原因吗?我觉得添加 “return nil” 可能不会有太大区别,你怎么看?
另外,所有私信也都导入了,但内容也是空的。
pfaffman
(Jay Pfaffman)
5
数据库查询不知为何出错了。它无法获取帖子内容的数据。
dr3adx
(Dr3adx)
7
这很奇怪,因为我使用的是 IPB3,并且我检查了列名,它们是对应的 
pfaffman
(Jay Pfaffman)
8
如果你执行脚本中使用的查询,它们是否返回了你所期望的数据?
你是否将
if raw.to_i.zero?
改为类似
if raw.length == 0
的形式?
"randome text".to_i.zero? 将始终为 true。