dr3adx
(Dr3adx)
Mai 18, 2020, 4:08
1
J’essaie d’importer des données de mon forum ipb et l’exécution du script ipboard3 me donne l’erreur suivante :
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!'
Pourquoi cela indique-t-il une méthode undefined ‘encode!’
pfaffman
(Jay Pfaffman)
Mai 18, 2020, 5:23
2
C’est parce qu’il est appelé avec raw égal à nil.
Vous devrez donc déterminer quelle fonction l’appelle et pourquoi elle ne reçoit pas de données pour les données brutes du message.
Mon hypothèse est que cela vient de cette ligne :
bio_raw: clean_up(u["pp_about_me"]),
Si c’est le cas, vous devriez peut-être modifier clean_up pour qu’elle renvoie nil si elle ne reçoit aucune donnée.
dr3adx
(Dr3adx)
Mai 19, 2020, 12:54
4
pfaffman:
Parce que la fonction est appelée avec raw égal à nil.
Il va donc falloir déterminer quelle fonction l’appelle et pourquoi elle ne reçoit pas les données brutes du message.
Je parie que c’est cette ligne :
bio_raw: clean_up(u["pp_about_me"]),
Si c’est le cas, il faudrait peut-être modifier clean_up pour qu’elle retourne nil si aucune donnée n’est reçue.
Est-ce que c’est bien ?
if raw.to_i.zero?
return
end
J’ai essayé ça et tous les utilisateurs, sujets et messages ont été importés, mais les messages n’ont pas de corps (ils sont vides). As-tu une idée de la raison ? Je ne pense pas que l’ajout de “return nil” fasse beaucoup de différence, qu’en penses-tu ?
De plus, tous les messages privés ont été importés, mais ils sont également vides.
pfaffman
(Jay Pfaffman)
Mai 19, 2020, 2:07
5
La requête de base de données est incorrecte pour une raison quelconque. Elle ne récupère pas les données du contenu de l’article.
riking
(Kane York)
Mai 19, 2020, 6:55
6
Non, cela se déclenchera trop souvent. Essayez ceci :
return if raw.nil?
dr3adx
(Dr3adx)
Mai 19, 2020, 5:01
7
C’est étrange, car j’utilise IPB3 et j’ai vérifié les noms des colonnes, ils correspondent
pfaffman
(Jay Pfaffman)
Mai 19, 2020, 5:36
8
Si vous exécutez les requêtes que le script effectue, fournissent-elles les données que vous attendez ?
Avez-vous modifié votre
if raw.to_i.zero?
en quelque chose comme
if raw.length == 0
"randome text".to_i.zero? sera toujours vrai.