Problem mit dem Import-Skript ipboard3.rb

Ich versuche, Daten von meinem IPB-Forum zu importieren, und beim Ausführen des Skripts ipboard3 erhalte ich folgenden Fehler:

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

Warum wird der Fehler „undefined method ‘encode!’

Weil raw mit nil aufgerufen wird.

Du musst also herausfinden, welche Funktion sie aufruft und warum keine Daten für die Rohdaten des Beitrags vorliegen.

Meine Vermutung ist diese Zeile:

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

Falls dem so ist, wäre es vielleicht ratsam, clean_up so zu ändern, dass es nil zurückgibt, wenn keine Daten vorliegen.

Ist das gut?

if raw.to_i.zero?
return
end

Ich habe das ausprobiert, und es wurden zwar alle Benutzer, Themen und Beiträge importiert, aber die Beiträge haben keinen Inhalt (sie sind leer). Hast du eine Idee, warum? Ich glaube nicht, dass das Hinzufügen von “return nil” einen großen Unterschied macht. Was denkst du?

Außerdem wurden alle privaten Nachrichten importiert, aber auch sie sind leer.

Die Datenbankabfrage ist aus irgendeinem Grund falsch. Die Daten für den Beitragsinhalt werden nicht abgerufen.

Nein, das wird viel zu häufig ausgelöst. Versuche es so:

return if raw.nil?

Das ist seltsam, denn ich verwende IPB3 und habe die Spaltennamen überprüft – sie stimmen überein :open_mouth:

Wenn Sie die Abfragen ausführen, die das Skript ausführt, liefern diese die erwarteten Daten?

Haben Sie

if raw.to_i.zero?

in etwas wie

if raw.length == 0

geändert?

"randome text".to_i.zero? ist immer true.