# Функция «Избранное» для значков не работает у некоторых пользователей: появляется всплывающее окно с сообщением «FAILED»

**URL:** https://meta.discourse.org/t/badge-favorites-not-working-for-some-users-they-get-pop-up-stating-failed/261492
**Category:** Support
**Tags:** badges
**Created:** [12.Апрель.2023 18:57:10 UTC](https://meta.discourse.org/t/badge-favorites-not-working-for-some-users-they-get-pop-up-stating-failed/261492 "2023-04-12T18:57:10Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![Josiah\_Philipsen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/josiah_philipsen/32/302368_2.png) [@Josiah\_Philipsen](https://meta.discourse.org/u/Josiah_Philipsen)
#### Post date: [12.Апрель.2023 18:57:11 UTC](https://meta.discourse.org/t/badge-favorites-not-working-for-some-users-they-get-pop-up-stating-failed/261492/1 "2023-04-12T18:57:11Z")

</div>

У меня возникла проблема с пользователем, который не может переключать свои избранное. Я нашел несколько статей и запросов на слияние (pull requests), соответствующих этой ошибке, но они датированы двумя годами назад, и запросы на слияние уже были приняты. Похоже, это другая проблема.

Проблема возникает не у всех пользователей, но у этого пользователя есть два избранных за бейджи. Каждый бейдж имеет более одного достижения. Когда я нажимаю на «Избранное», появляется всплывающее окно с сообщением «Ошибка».

 ![image](https://global.discourse-cdn.com/meta/original/4X/8/a/1/8a147d1bf950ae85a9e58fd27d64d06e62ff9e8f.png)

В консоли Chrome указано, что от нашего URL /user\_badges/17307/toggle\_favorite возвращается ошибка 400.

Есть ли какие-либо идеи, как это исправить? Это не работает ни в приложении, ни в браузере.

Похожая тема: ["FAILED" error selecting Favorite badges](https://meta.discourse.org/t/failed-error-selecting-favorite-badges/195657)

Однако двойной клик в данном случае не помог.

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [10.Июнь.2023 11:05:05 UTC](https://meta.discourse.org/t/badge-favorites-not-working-for-some-users-they-get-pop-up-stating-failed/261492/2 "2023-06-10T11:05:05Z")

</div>

Привет, @Josiah_Philipsen 🙂

Вам удалось в итоге разобраться в этом вопросе?

---

<div class="post-metadata">

### Author: ![lewisakura](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lewisakura/32/380966_2.png) [@lewisakura](https://meta.discourse.org/u/lewisakura)
#### Post date: [23.Апрель.2024 22:17:02 UTC](https://meta.discourse.org/t/badge-favorites-not-working-for-some-users-they-get-pop-up-stating-failed/261492/3 "2024-04-23T22:17:02Z")

</div>

Здесь может быть причина. Для справки: я пользователь на [Roblox DevForum](https://devforum.roblox.com/) с версией 3.0.3, не администратор, и сталкиваюсь с описанной здесь проблемой. Я написал там краткое описание, пытаясь разобраться самостоятельно, но вот relevantная часть:

> Раньше я мог выбрать свои любимые значки, когда они были у меня по одному, но _теперь_, когда у меня есть несколько копий, я больше не могу их отменить. Возможно, это связано с получением дополнительных копий после добавления в избранное, так как каждый значок уникален, независимо от количества дубликатов? Это моё текущее предположение, но, конечно, без возможности проверить саму установку Discourse я не могу это доказать.

Я добавил в избранное значки `Great Topic` и `Good Topic` очень давно, когда у меня был по одному экземпляру каждого, но теперь у меня их 2 и 4 соответственно. При попытке убрать из избранного я получаю общий ответ `FAILED`. Другие пользователи, которые ещё не добавляли значки в избранное, могут добавлять и удалять их по желанию, что указывает на то, что проблема вызвана добавлением значков того же _типа_, которые уже находятся в избранном, и что эти копии учитываются в общем количестве избранных, из-за чего какая-то проверка не проходит.

Посмотрев на метод `toggle_favorite` для этой версии, единственная проверка, связанная с количеством значков, выглядит так:

```ruby
if !user_badge.is_favorite &&
     user_badges.select(:badge_id).distinct.where(is_favorite: true).count >=
       SiteSetting.max_favorite_badges
  return render json: failed_json, status: 400
end

```

Сначала я отбросил эту идею, потому что `user_badge.is_favorite` должно быть `true` в этом случае, но теперь я начинаю думать, что из-за дополнительных копий они не считаются добавленными в избранное…

Если это уже исправлено в более новой версии, извините за оживление темы, но администраторы там пытаются разобраться, и это уже стало тупиком, поэтому я пытаюсь привлечь внимание здесь, чтобы им было проще исправить проблему или обновить Discourse.
