У меня эта проблема уже месяц; я пробовал несколько раз обновлять, мигрировать базу данных в новую и т.д., но ничего не помогает.
Проблема была у администратора; я пытался перенести данные администратора в новый аккаунт — та же ошибка: я не могу открыть страницу настроек или профиля и получаю ошибку 404.
Я видел похожие сообщения, но никто не объясняет, как это исправить, и проблема существует уже три года.
Та же проблема, и они упоминают, что она исправлена, но это слишком старая запись, и никто не объясняет, как её исправить.
Исключение в задаче: getaddrinfo: Нет адреса, связанного с именем хоста
2:11
NoMethodError (неопределенный метод `url' для 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
Похоже, это та же проблема, о которой вы уже писали. Я добавлю ссылку на другую тему на случай, если там есть дополнительная информация, которая поможет разобраться, что пошло не так:
Не совсем уверен, что правильно понял суть на 100%. Проблема в том, что вы не можете получить доступ к панели администратора?
И вы думаете, что это может быть связано с какими-то пользовательскими значками? Затронуты ли другие пользователи с пользовательскими значками? Если да, то могли бы вы отозвать эти значки или удалить их полностью?
Я не думаю, что существует простой способ «сброса» для значков, даже из консоли Rails.
Как далеко вы продвинулись с запросом Data Explorer, рекомендованным в другой теме? Вам удалось определить, какое изображение значка вызывает проблему?
После небольшого экспериментирования мне удалось воспроизвести эту ошибку (или, возможно, что-то похожее). Я попробовал использовать консоль для вставки значения «null» в поле image_upload_id в таблице Badge, но вместо этого оно заполнилось нулём. Это заблокировало мой тестовый сайт очень похожим образом на то, что вы описали.
Я «исправил» это, заменив все значения image_upload_id на ‘1’. Это позволило мне снова получить доступ к моему профилю и разделу «Значки», но теперь мне нужно вручную вернуть все значки обратно только в виде иконок и т. д.
Чтобы проверить, является ли ваша проблема аналогичной, можете ли вы открыть свой data-explorer, создать новый запрос и вставить туда следующее (а затем выполнить):
Select name, image_upload_id
FROM badges b
Order By id desc
Я также выяснил, что в консоли для корректной работы нужно использовать ‘nil’, а не ‘null’.
Это исправило мои повреждённые записи без необходимости прохода по ним вручную:
Badge.where('image_upload_id=0').find_each do |b|
b.image_upload_id = nil
b.save
end
Не зная точно, в чём именно заключается ваша проблема, я не могу с уверенностью сказать, что это исправит её таким же образом — хотя, возможно, вариант «заменить всё на nil» подойдёт и вам?
Запрос в Data Explorer не устранит проблему, но полученная информация может помочь.
Если вы комфортно работаете с Rails Console, попробуйте следующее, чтобы сбросить значение 17 в null (не забудьте сделать резервную копию на всякий случай):
Перейдите в Rails Console:
cd /var/discourse
./launcher enter app
rails c
Вставьте следующее:
Badge.where('image_upload_id=17').find_each do |b|
b.image_upload_id = nil
b.save
end
Надеемся, это разблокирует раздел «Значки» и профиль, чтобы вы могли начать заново.