No desktop, exibimos categorias e tópicos separadamente, mas no mobile exibimos categorias com tópicos, combinados. Tendo isso em mente, é esta linha que causa o bug:
c.displayable_topics.blank? é sempre verdadeiro no desktop porque carregamos os tópicos separadamente, então displayable_topics está sempre vazio. No mobile, é verdadeiro apenas se realmente não houver tópicos naquela categoria.
Temos duas soluções aqui:
-
mostrar “sem categoria” se houver pelo menos um tópico, independentemente do valor da configuração “permitir tópicos sem categoria”
-
ocultar “sem categoria” mesmo que haja um tópico, se “permitir tópicos sem categoria” for falso
A segunda solução é mais fácil de implementar porque significa que simplesmente removemos a segunda parte da condição.