Profilpräferenz 404-Fehler/Admin-Profil funktioniert nicht

Ich habe dieses Problem seit einem Monat; aber ich habe mehrmals versucht, das Upgrade durchzuführen; die Datenbank auf eine neue zu migrieren; usw… ohne Erfolg.

Es war bei einem Admin-Benutzer, ich habe versucht, die Admin-Daten auf einen neuen zu migrieren; dasselbe Problem.. Ich kann die Präferenzen oder das Profil nicht öffnen und erhalte eine 404;

Ich sehe dasselbe Problem, aber niemand erklärt, wie es behoben werden kann, und es ist ziemlich alt, seit 3 Jahren.

dasselbe Problem und sie erwähnen, dass es behoben ist, aber zu alt und niemand erklärt, wie es behoben werden kann.

Was bedeutet das?

Verwenden Sie Plugins?

Sehen Sie etwas in /logs?

2 „Gefällt mir“

Ich habe alle Plugins deaktiviert und die Datenbank wiederhergestellt, aber derselbe Fehler tritt auf. Ich habe keine Ahnung, deshalb schreibe ich hier.

Sie müssen uns einige Informationen zur Verfügung stellen, mit denen wir arbeiten können.

2 „Gefällt mir“

Logs zeigen dies

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
Nachricht

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'

Umgebung

HTTP HOSTS: site.com

Haben Sie versucht, die Abzeichen zu deaktivieren und zu sehen, ob dies die Situation löst?

Ja, ich versuche es, aber das gleiche Problem

Dies scheint das gleiche Problem zu sein, das Sie zuvor gepostet haben. Ich werde das andere Thema hier verlinken, falls dort weitere Informationen enthalten sind, die den Leuten helfen können, herauszufinden, was schief gelaufen ist:

Ich bin mir nicht sicher, ob ich das zu 100 % verstehe. Besteht das Problem darin, dass Sie nicht auf den Admin-Bildschirm zugreifen können?

Ja, ich habe bereits erwähnt, dass ich dieses Problem vor einem Monat hatte und viele Wege versucht habe, es zu beheben, aber alles schlug fehl.

Ich kann den Admin-Bildschirm sehen, aber ich kann kein Admin-Profil oder keine Präferenzen öffnen, es gibt mir einen 404-Fehler.

Und Sie glauben, dass dies möglicherweise auf benutzerdefinierte Abzeichen zurückzuführen ist? Sind andere Benutzer mit den benutzerdefinierten Abzeichen betroffen? Wenn ja, könnten Sie die benutzerdefinierten Abzeichen widerrufen oder sie ganz löschen?

Ich weiß nicht, wie ich sie widerrufen oder löschen kann… Gibt es dafür eine Anleitung, die ich ausprobieren kann?

Sie können die Abzeichen eines Benutzers auf dessen Admin-/Benutzerseite bearbeiten/widerrufen: (wenn Sie darauf zugreifen können)

Oder Sie können ein benutzerdefiniertes Abzeichen im Abschnitt „Abzeichen“ des Adminbereichs löschen:

[IhreWebsite]/admin/badges

In Präferenz oder Profil kann ich nicht zugreifen (404-Fehler); und im Badge-Bereich (500-Fehler);

Fehlercode: 500 Fehler

Vielleicht kann ich den grundlegenden Badge von der Befehlszeile wiederherstellen?

Nachricht

Uncaught [object Object]
Url: https://site.com/assets/vendor-3c473d73e5222f7710764282fcc17d73997b7fbd37e0c12afc050b80693ceee2.js
Zeile: 36
Spalte: 180628
Window Location: https://site.com/admin/badges

Backtrace


Env

HTTP HOSTS: site.com

Ich glaube nicht, dass es ein einfaches „Zurücksetzen“ gibt, das Sie für die Abzeichen tun können, selbst von der Rails-Konsole aus.

Wie weit sind Sie mit der im anderen Thema empfohlenen Data Explorer-Abfrage gekommen? Haben Sie herausgefunden, welches Badge-Bild das Problem verursacht?

Nein, das habe ich nicht. Wenn möglich, können Sie einen Blick darauf werfen?

Nach einigem Experimentieren kann ich diesen Glitch (oder möglicherweise etwas Ähnliches) reproduzieren. Ich habe versucht, über die Konsole einen „Null“-Wert in die image_upload_id in der Badge-Tabelle einzufügen, und sie wurde stattdessen mit 0 gefüllt. Das hat meine Testseite auf eine sehr ähnliche Weise blockiert, wie Sie es beschrieben haben.

Ich habe es „repariert“, indem ich alle image_upload_id auf „1“ geändert habe. Das hat mir den Zugang zu meinem Profil und dem Badges-Bereich wieder ermöglicht, aber ich muss jetzt alle Badges manuell wieder auf nur Symbol usw. umstellen.

Um zu prüfen, ob Ihr Problem ähnlich ist, können Sie auf Ihren Data Explorer zugreifen, eine neue Abfrage erstellen und Folgendes einfügen (und ausführen):

Select name, image_upload_id
FROM badges b
Order By id desc

Ich habe auch herausgefunden, dass es „nil“ und nicht „null“ in der Konsole benötigt, damit es richtig funktioniert. :slightly_smiling_face:

Dies hat meine kaputten Badges behoben, ohne dass ich sie alle manuell durchgehen musste:

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

Ohne genau zu wissen, was das Problem bei Ihnen ist, kann ich nicht mit Sicherheit sagen, dass dies Ihr Problem auf die gleiche Weise beheben wird – obwohl vielleicht eine „Änderung aller zu nil“ für Sie funktionieren könnte?

1 „Gefällt mir“

Hallo @jammydodger,

Nun, es zeigt mir etwas wie das hier an

Ich sehe, dass die meisten Abzeichen NULL sind, außer 3 Abzeichen, die den Wert 17 haben

und nachdem ich das Profil erneut überprüft habe, tritt der Fehler in den „Logs“ immer noch auf;

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/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

Soll ich etwas anderes auswählen oder möchten Sie es sich vielleicht selbst ansehen?

1 „Gefällt mir“

Die Data Explorer-Abfrage wird das Problem nicht beheben, aber die Informationen, die sie geliefert hat, könnten es. :+1:

Wenn Sie mit der Rails-Konsole vertraut sind, könnten Sie Folgendes versuchen, um diese 17 auf Null zurückzusetzen: (vergessen Sie nicht, vorsichtshalber ein Backup zu erstellen)

Navigieren Sie zur Rails-Konsole:

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

Fügen Sie dies ein:

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

Und hoffentlich wird dies den Badge-Bereich und das Profil freischalten, damit Sie neu beginnen können. :+1::crossed_fingers:

2 „Gefällt mir“

Wissen hat keinen Wert, wenn du es nicht nutzt und teilst, Kumpel! Ich schätze deine Zeit, Bruder.. erledigt!

2 „Gefällt mir“