На десктопе мы отображаем категории и темы отдельно, а на мобильных устройствах — объединённо. Учитывая это, именно эта строка вызывает ошибку:
Условие c.displayable_topics.blank? всегда истинно на десктопе, поскольку темы загружаются отдельно, поэтому displayable_topics всегда пуст. На мобильных устройствах оно истинно только в том случае, если в категории действительно нет тем.
У нас есть два решения:
-
отображать «без категории», если есть хотя бы одна тема, независимо от значения настройки «разрешать темы без категории»
-
скрывать «без категории», даже если есть тема, если настройка «разрешать темы без категории» отключена
Второе решение проще в реализации, так как достаточно просто убрать вторую часть условия.