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!'

왜 undefined method ‘encode!’ 오류가 나는 건가요? :confused:

raw가 nil인 상태로 호출되기 때문입니다.

따라서 어떤 함수가 이를 호출하고 있으며, 게시물의 원시 데이터(raw data)를 받지 못하는 이유를 파악해야 합니다.

제 추측은 이 줄일 것입니다:

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

만약 그렇다면, 데이터를 받지 못했을 때 nil을 반환하도록 clean_up을 수정하는 것이 좋습니다.

이렇게 하면 좋을까요?

if raw.to_i.zero?
return
end

이렇게 시도해 봤는데 모든 사용자, 주제, 게시물이 가져와지긴 했지만 게시물의 본문(body)이 없습니다(빈 상태입니다). 이유가 뭘까요? "return nil"을 추가해도 큰 차이가 없을 것 같은데, 어떻게 생각하시나요?
또한 모든 개인 메시지도 가져와졌지만 이것들도 비어 있습니다.

데이터베이스 쿼리가 어딘가에서 잘못되었습니다. 게시글 콘텐츠 데이터를 가져오지 못하고 있습니다.

아니요, 그건 너무 자주 트리거가 됩니다. 이렇게 해보세요:

return if raw.nil?

IPB3를 사용하고 있고 컬럼 이름을 확인했는데 일치하는데 왜 그런지 모르겠네요 :open_mouth:

스크립트가 수행하는 쿼리를 직접 실행해 보면, 기대하는 데이터를 반환합니까?

if raw.to_i.zero?

을 다음과 같이 변경해 보셨나요?

if raw.length == 0

"randome text".to_i.zero?는 항상 true를 반환합니다.