Uma imagem para múltiplas categorias

Bom dia,

Tenho uma pergunta se é possível fazer o upload de uma imagem para uma categoria e usar essa mesma imagem carregada para as subcategorias e subsubcategorias. Abaixo está a estrutura

Categoria A
    Categoria A1
    Categoria A2
    Categoria A3
    Categoria A4

Categoria B
    Categoria B1
        Categoria B11
        Categoria B12
    Categoria B2
    Categoria B3
    Categoria B4
        Categoria B41
        Categoria B42

Categoria C
    Categoria C1
        Categoria C11

Categoria D
    Categoria D1
    Categoria D2
    Categoria D3
    Categoria D4

As categorias A..D têm uma imagem para a categoria. Navegando para o primeiro nível mostra a imagem dessa categoria, indo para o 3º nível não mostra a imagem, então tenho que adicioná-la manualmente. Infelizmente, tenho muitas categorias (não foi minha escolha) então é muito trabalho e consome espaço em disco no servidor (pode me chamar de antiquado, estou acostumado a trabalhar com coisas com recursos muito limitados).

Herança seria o primeiro preço. Outras maneiras de conseguir isso, só preciso fazer o upload da imagem uma vez e, de preferência, não ter que editar todas as subsubcategorias?

Note que sou um iniciante total em Discourse, atualmente estou reformulando um site existente baseado em Discourse.

Obrigado antecipadamente.

Não consome. As imagens são armazenadas por um hash, então apenas uma cópia será criada/armazenada, não importa quantas vezes ela seja carregada.

Se você tiver acesso ao rails, poderá fazer algo como isto:

parent=Category.find_by_slug('category_a');
children=Category.where(parent_category_id: parent.id);
children.update_all(uploaded_logo_id: parent.uploaded_logo_id);

Os ponto e vírgulas no final impedem que o rails coloque a saída em um visualizador, então você pode colar todas as três linhas de uma vez. Você pode omiti-los ao tentar isso. Você deve fazer um backup e estar disposto a restaurá-lo se não estiver tentando isso primeiro em algum tipo de site de teste ou de homologação.

Você pode sugerir que seus superiores leiam É Hora de Falarmos Sobre Tags. Ou talvez haja alguma boa razão para todas as subcategorias. A menos que você precise limitar o acesso a essas subcategorias ou as pessoas queiram assistir/silenciar essas categorias, elas provavelmente estão piorando as coisas para todos (exceto para a pessoa que terá o direito de se gabar de que sua má ideia foi a aceita pela Empresa Inteira).

1 curtida

Obrigado pela resposta

Isso é ótimo, uma preocupação a menos.

Eu só tenho acesso ao site de staging (hospedado pelo Discourse); então duvido que eu tenha acesso ao Ruby :wink:

Nesse caso, você poderia criar algo semelhante com a API, mas você estaria por conta própria para isso. Você começaria com Engenharia reversa da API do Discourse. . .

Ei, escute, eu disse que era um iniciante :rofl:

Obrigado pelos dois links que você forneceu :+1:

1 curtida

Sim. Desculpe. A menos que você já seja bom em interagir com uma API (talvez com curl), então receio que você terá que clicar em um monte de coisas.

1 curtida