Ein Bild für mehrere Kategorien

Guten Tag,

Ich habe eine Frage, ob es möglich ist, ein Bild für eine Kategorie hochzuladen und dieses gleiche hochgeladene Bild für die Unterkategorien und Unterunterkategorien zu verwenden. Unten ist die Struktur

Kategorie A
    Kategorie A1
    Kategorie A2
    Kategorie A3
    Kategorie A4

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

Kategorie C
    Kategorie C1
        Kategorie C11

Kategorie D
    Kategorie D1
    Kategorie D2
    Kategorie D3
    Kategorie D4

Kategorien A..D haben ein Bild für die Kategorie. Wenn Sie zur ersten Ebene navigieren, wird das Bild dieser Kategorie angezeigt. Wenn Sie zur dritten Ebene gehen, wird das Bild nicht angezeigt, sodass ich es manuell hinzufügen muss. Ich habe leider viele Kategorien (nicht meine Wahl), daher ist das viel Arbeit und es verbraucht Speicherplatz auf dem Server (nennen Sie mich altmodisch, ich bin es gewohnt, mit Dingen mit sehr begrenzten Ressourcen zu arbeiten).

Vererbung wäre der erste Preis. Andere Wege, dies zu erreichen, bei denen ich das Bild nur einmal hochladen muss und vorzugsweise nicht jede Unterunterkategorie bearbeiten muss?

Beachten Sie, dass ich ein absoluter Anfänger mit Discourse bin und derzeit eine bestehende Discourse-basierte Website überarbeite.

Vielen Dank im Voraus.

Das tut es nicht. Bilder werden mit einem Hash gespeichert, sodass nur eine einzige Kopie erstellt/gespeichert wird, egal wie oft sie hochgeladen wird.

Wenn Sie Zugriff auf Rails haben, können Sie Folgendes tun:

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);

Die abschließenden Semikolons verhindern, dass Rails die Ausgabe in einem Viewer anzeigt, sodass Sie alle drei Zeilen auf einmal einfügen können. Sie können sie beim Ausprobieren weglassen. Sie sollten ein Backup erstellen und bereit sein, es wiederherzustellen, wenn Sie dies nicht zuerst auf einer Art Test- oder Staging-Site ausprobieren.

Sie können Ihren Vorgesetzten vorschlagen, It’s Time We Talked About Tags zu lesen. Oder vielleicht gibt es einen guten Grund für all die Unterkategorien. Es sei denn, Sie müssen den Zugriff auf diese Unterkategorien einschränken oder die Leute werden diese Kategorien beobachten/stummschalten wollen, sie werden wahrscheinlich die Dinge für alle verschlimmern (außer für die Person, die den Ruhm dafür erhält, dass ihre schlechte Idee von der ganzen Firma akzeptiert wurde).

1 „Gefällt mir“

Danke für die Antwort

Das ist großartig, eine Sorge weniger.

Ich habe nur Zugriff auf die Staging-Website (gehostet von Discourse); daher bezweifle ich, dass ich Zugriff auf Ruby habe :wink:

In diesem Fall könnten Sie mit der API etwas Ähnliches erfinden, aber dabei sind Sie auf sich allein gestellt. Sie würden mit Reverse Engineering der Discourse API beginnen. . .

Hey, hör zu, ich sagte, ich sei ein Anfänger :rofl:

Danke für die beiden Links, die du bereitgestellt hast :+1:

1 „Gefällt mir“

Ja. Tut mir leid. Es sei denn, Sie sind bereits gut darin, mit einer API zu interagieren (vielleicht mit curl), dann fürchte ich, müssen Sie einfach eine Menge klicken.

1 „Gefällt mir“