Errore 404 preferenza profilo/ profilo admin non funziona

Ho questo problema da un mese; ma ho provato diverse volte ad aggiornare; migrare il database su uno nuovo; ecc… senza successo.

Era nell’utente admin; ho provato a migrare i dati dell’admin su uno nuovo; stesso problema.. non riesco ad aprire le preferenze o il profilo e ottengo 404;

Ho visto lo stesso problema ma nessuno spiega come risolverlo ed è piuttosto vecchio, risale a 3 anni fa.

stesso problema e menzionano che è stato risolto ma è troppo vecchio e nessuno spiega come risolvere.

Cosa significa?

Stai usando dei plugin?

Vedi qualcosa in /logs?

2 Mi Piace

Ho disabilitato tutti i plugin e ripristinato il database con lo stesso errore, non ho idea… ed è per questo che scrivo qui.

Dovrai darci qualche informazione su cui lavorare.

2 Mi Piace

i log mostrano questo

Job exception: getaddrinfo: No address associated with hostname
2:11 am
NoMethodError (undefined method `url' for nil:NilClass) app/models/badge.rb:306:in `image_url' (eval):10:in `_fast_attributes' lib/freedom_patches/ams_include_without_root.rb:54:in `include!' lib/free
Messaggio

NoMethodError (undefined method `url' for nil:NilClass)
app/models/badge.rb:306:in `image_url'
(eval):10:in `_fast_attributes'
lib/freedom_patches/ams_include_without_root.rb:54:in `include!'
lib/freedom_patches/ams_include_without_root.rb:54:in `include!'
app/controllers/application_controller.rb:510:in `render_json_dump'
app/controllers/users_controller.rb:97:in `block (2 levels) in show'
app/controllers/users_controller.rb:89:in `show'
app/controllers/application_controller.rb:387:in `block in with_resolved_locale'
app/controllers/application_controller.rb:387:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
lib/middleware/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:356:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/request_tracker.rb:198:in `call'

Backtrace

app/models/badge.rb:306:in `image_url'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:99:in `block in attribute'
(eval):10:in `_fast_attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:468:in `rescue in attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:455:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:448:in `block in merge_association'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:445:in `each'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:445:in `merge_association'

Ambiente

HTTP HOSTS: site.com

Hai provato a disabilitare le badge e vedere se questo risolve la situazione?

Sì, ci provo ma stesso problema

Sembra essere lo stesso problema che hai segnalato in precedenza. Allego l’altro argomento qui nel caso ci siano più informazioni che possano aiutare a capire cosa è andato storto:

Non sono sicuro di aver capito al 100%. Il problema è che non riesci ad accedere alla schermata di amministrazione?

Sì, ho menzionato prima di aver avuto questo problema un mese fa e ho provato molti modi per risolverlo, ma tutto è fallito.

Nella schermata di amministrazione posso vedere, ma non posso aprire il profilo di amministrazione o le preferenze, mi dà un errore 404.

E pensi che questo possa essere dovuto ad alcuni badge personalizzati? Anche altri utenti con i badge personalizzati sono interessati? Se è così, potresti revocare i badge personalizzati o eliminarli del tutto?

Non so come revocarli o eliminarli… C’è una guida per provarci?

Puoi modificare/revocare i badge di un utente dalla sua pagina admin/utente: (se riesci ad accedervi)

Oppure puoi eliminare un badge personalizzato dalla sezione Badge dell’area amministrativa:

[IlTuoSito]/admin/badges

In preferenze o profilo non riesco ad accedere (errore 404); e nella sezione badge (errore 500);

Codice di errore: errore 500

Forse posso eseguire il ripristino del badge di base dalla riga di comando del database?

Messaggio

Uncaught [object Object]
Url: https://site.com/assets/vendor-3c473d73e5222f7710764282fcc17d73997b7fbd37e0c12afc050b80693ceee2.js
Riga: 36
Colonna: 180628
Posizione finestra: https://site.com/admin/badges

Backtrace



Env

HTTP HOSTS: site.com

Non credo ci sia un semplice “ripristino” che puoi fare per i badge, nemmeno dalla console di Rails.

A che punto sei arrivato con la query di Data Explorer raccomandata nell’altro argomento? Sei riuscito a individuare quale immagine del badge sta causando il problema?

No, non l’ho fatto, se possibile puoi dare un’occhiata?

Dopo un po’ di sperimentazione, posso replicare questo glitch (o possibilmente qualcosa di simile). Ho provato a usare la console per inserire un valore “null” in image_upload_id nella tabella Badge, e invece l’ha riempito con 0. Questo ha bloccato il mio sito di test in un modo molto simile a quello che hai descritto.

L’ho “risolto” cambiando tutti gli image_upload_id in ‘1’. Questo mi ha permesso di tornare al mio profilo e alla sezione Badge, ma ora devo scambiare manualmente tutti i badge per mostrarli solo come icona, ecc.

Per verificare se il tuo è un problema simile, puoi accedere al tuo data-explorer e creare una nuova query incollando questo (ed eseguendola):

Select name, image_upload_id
FROM badges b
Order By id desc

Ho anche capito che vuole ‘nil’ e non ‘null’ nella console per funzionare correttamente. :slightly_smiling_face:

Questo ha risolto i miei elementi danneggiati senza doverli esaminare tutti manualmente:

Badge.where('image_upload_id=0').find_each do |b|
b.image_upload_id = nil
b.save
end

Senza sapere esattamente qual è il problema con il tuo, non posso dire con certezza che risolverà il tuo allo stesso modo, anche se forse un “cambia tutto a nil” potrebbe funzionare per te?

1 Mi Piace

Ciao @jammydodger,

Beh, mi mostra qualcosa di simile

Vedo la maggior parte dei badge NULL tranne 3 badge che hanno valore 17

e dopo aver ricontrollato il profilo; l’errore si ripresenta nei “log”;

Message

NoMethodError (undefined method `url' for nil:NilClass)
app/models/badge.rb:306:in `image_url'
(eval):10:in `_fast_attributes'
lib/freedom_patches/ams_include_without_root.rb:54:in `include!'
lib/freedom_patches/ams_include_without_root.rb:54:in `include!'
app/controllers/application_controller.rb:510:in `render_json_dump'
app/controllers/users_controller.rb:97:in `block (2 levels) in show'
app/controllers/users_controller.rb:89:in `show'
app/controllers/users_controller.rb:103:in `show_card'
app/controllers/application_controller.rb:387:in `block in with_resolved_locale'
app/controllers/application_controller.rb:387:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
lib/middleware/content_security_policy_middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:356:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/request_tracker.rb:198:in `call'

Backtrace

app/models/badge.rb:306:in `image_url'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:99:in `block in attribute'
(eval):10:in `_fast_attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:468:in `rescue in attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:455:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:448:in `block in merge_association'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:445:in `each'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:445:in `merge_association'

Env

HTTP HOSTS: site.com

Dovrei selezionare qualcos’altro o preferisci dare un’occhiata tu stesso?

1 Mi Piace

La query di esplorazione dati non risolverà il problema, ma le informazioni che ha fornito potrebbero esserlo. :+1:

Se ti trovi a tuo agio nell’usare la console Rails, potresti provare quanto segue per reimpostare quei 17 a null: (non dimenticare di fare un backup, non si sa mai)

Naviga alla console Rails:

cd /var/discourse
./launcher enter app
rails c

Incolla questo:

Badge.where('image_upload_id=17').find_each do |b|
b.image_upload_id = nil
b.save
end

E speriamo che questo sblocchi la sezione Badge e il profilo in modo che tu possa ricominciare da capo. :+1::crossed_fingers:

2 Mi Piace

La conoscenza non ha valore se non la usi e la condividi, amico! Apprezzo il tuo tempo, fratello… sistemato!

2 Mi Piace