[RAILS] Kennst du Decorator?

Was ist Dekorateur?

Durch Umschließen eines vorhandenen Objekts mit einem neuen Decorator-Objekt können Sie Funktionen von außen hinzufügen oder neu schreiben, ohne den Inhalt vorhandener Funktionen und Klassen direkt zu berühren. Es wird auch als Alternative zur Klassenvererbung verwendet, wenn eine vorhandene Klasse erweitert wird.

Die Rolle der Umwandlung von "Daten (einfach von einem Programm zu verwalten)" in "Informationen (für den Benutzer leicht verständlich)". Um es zu benutzen, installiere und benutze einen Edelstein namens "draper". Generieren Sie Dateien unter App / Decorators.

Wie benutzt man

  1. Beschreiben Sie Folgendes in der Gemfile.

gem 'draper'

Führen Sie dies auch aus.


$ budle install
  1. Führen Sie den folgenden Befehl aus, um application_decorator.rb zu erstellen.

$ rails generate draper:install
  1. Führen Sie den folgenden Befehl aus, um einen Dekorateur zu erstellen.

#Schienen erzeugen Dekorator Modellname

$ rails generate decorator Article

Modell-

app/decorators/article_decorator.rb



class ArticleDecorator < Draper::Decorator
  delegate_all

  def publication_status
    if published?
      "Published at #{published_at.strftime("%A, %B %e")}"
    else
      "Unpublished"
    end
  end
end

Aussicht

・
・
・
<%= @article.publication_status %>
・
・
・

Tipps


object.published_at.strftime("%A, %B %e")

model.published_at.strftime("%A, %B %e") #Modell ist Objektalias

class ArticleDecorator < Draper::Decorator
  delegate_all
end

class ArticleDecorator < Draper::Decorator
  #Im Titel Objekt.Sie können auf den Titel zugreifen
  delegate :title, :body

  #Delegieren Sie die angegebene Methode an das angegebene Objekt
  delegate :name, :title, to: :author, prefix: true
end

Referenz

Bereiten Sie einen Dekorateur für die Anzeige der Schienenansicht vor, um Helfer und Modell zu unterstützen

Über die Rolle des Dekorateurs und Drapierers

Zusammenfassung der Verwendung von Draper

Recommended Posts

Kennst du Decorator?
Kinx Tiny Typesetting - LaTeX-Fraktion? Weißt du?
Unerwartet unbekannte Java-Zusammenfassung für reservierte Wörter
Bequeme Verwendung von Map, die Sie nicht unerwartet kennen
Kannst du es machen? Java EE
Wann umgestalten?
Verwenden Sie Stream in Java?
Kennen Sie Carbon, das den Quellcode auf Twitter kühl anzeigt?
Wie schreibt man den ternären Operator (? :)
Grundlegende Java-Grammatik sollten Sie zuerst kennen