dr3adx
(Dr3adx)
18 Maggio 2020, 4:08am
1
Sto cercando di importare dati dal mio forum IPB e lo script ipboard3 mi restituisce il seguente errore:
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!'
Perché mi restituisce “undefined method ‘encode!’”?
pfaffman
(Jay Pfaffman)
18 Maggio 2020, 5:23pm
2
Perché viene chiamato con raw impostato su nil.
Quindi dovrai capire quale funzione lo sta chiamando e perché non sta ricevendo i dati grezzi per il post.
Il mio indovinello è questa riga:
bio_raw: clean_up(u["pp_about_me"]),
Se è così, forse la soluzione è modificare clean_up in modo che restituisca nil se non riceve dati.
dr3adx
(Dr3adx)
19 Maggio 2020, 12:54am
4
pfaffman:
Perché viene chiamato con raw impostato su nil.
Quindi dovrai capire quale funzione lo sta chiamando e perché non sta ricevendo i dati grezzi per il post.
Il mio sospetto è questa riga:
bio_raw: clean_up(u["pp_about_me"]),
Se è così, forse la soluzione è modificare clean_up in modo che restituisca nil se non riceve dati.
è questa una buona soluzione?
if raw.to_i.zero?
return
end
Ho provato questo e ha importato tutti gli utenti, i topic e i post, ma i post non hanno corpo (sono vuoti). Hai idea del perché? Non credo che aggiungere “return nil” farebbe molta differenza, cosa ne pensi?
Inoltre, tutti i messaggi privati sono stati importati, ma anche loro sono vuoti.
pfaffman
(Jay Pfaffman)
19 Maggio 2020, 2:07am
5
La query del database è sbagliata per qualche motivo. Non sta recuperando i dati per il contenuto del post.
riking
(Kane York)
19 Maggio 2020, 6:55am
6
No, si attiverebbe troppo spesso. Prova così:
return if raw.nil?
dr3adx
(Dr3adx)
19 Maggio 2020, 5:01pm
7
È strano, perché sto usando IPB3 e ho controllato i nomi delle colonne e corrispondono
pfaffman
(Jay Pfaffman)
19 Maggio 2020, 5:36pm
8
Se esegui le query che esegue lo script, restituiscono i dati che ti aspetti?
Hai modificato il tuo
if raw.to_i.zero?
in qualcosa come
if raw.length == 0
"randome text".to_i.zero? sarà sempre vero.