[RUBY] Schienen delegieren Methode

Verwenden Sie die Delegate-Methode

Dieser Artikel ist eine Fortsetzung von Introducing Presenters.

Dies ist der Model Presenter, den ich das letzte Mal gemacht habe. Ich möchte diesem Präsentator eine Delegatenmethode hinzufügen

model_presenter.rb


class ModelPresenter
  attr_reader :object, :view_context

  def initialize(object, view_context)
    @object = object
    @view_context = view_context
  end
end

Der Klassenmethoden-Delegat definiert eine Instanzmethode mit dem im Argument angegebenen Namen. Die Arbeit dieser Methode wird dem Objekt anvertraut, das von der in der Option to angegebenen Methode zurückgegeben wird.

Dieses Mal delegieren wir eine Methode namens raw an das von view_context zurückgegebene Objekt

model_presenter.rb



class ModelPresenter
  attr_reader :object, :view_context
  delegate :raw, to: :view_context

  def initialize(object, view_context)
    @object = object
    @view_context = view_context
  end
end

Übrigens war der zuletzt erstellte member_presenter so.

member_presenter.rb


class MemberPresenter < ModelPresenter
  def arrested_mark
    object.arrested? ? 
      view_context.raw("&#x2611") : 
      view_context.raw("&#x2610")
  end
end

Mit der Delegate-Methode wurde es sauberer.

member_presenter.rb


class MemberPresenter < ModelPresenter
  def arrested_mark
    object.arrested? ? raw("&#x2611") : raw("&#x2610")
  end
end

Darüber hinaus, wenn verhaftet? Wird zum Objekt ausgelagert

member_presenter.rb


class MemberPresenter < ModelPresenter
  delegate :arrested?, to: :object
  def arrested_mark
    arrested? ? raw("&#x2611") : raw("&#x2610")
  end
end

Da die angehaltene? -Methode ein eindeutiges Objekt des Mitgliedsobjekts ist, Ich habe es am Vererbungsziel definiert. Ich konnte den Moderator mit einem solchen Delegaten aktualisieren.

Das ist alles für heute !!

Recommended Posts

Schienen delegieren Methode
Schienenmethode
[Rails] entwickelt eine Hilfsmethode
[Rails] entwickeln eine Einführungsmethode
[Schienen] erfordern Methode und Genehmigungsmethode
Über Rails Scraping-Methode Mechanisieren
[Rails] Über die Hilfsmethode form_with [Basic]
[Schienen 6] zerstören mit der Ressourcenmethode
[Ruby on Rails] Praktische Hilfsmethode
[Schienen g. Fehler]
Rails Review 1
Rails API
Schienenmigration
Java-Methode
to_i Methode
Java (Methode)
[Rails] first_or_initialize
Rails enum Präfektur per Pulldown-Methode auswählen
Methode getRequestDispatcher ()
Zusammenführungsmethode
Rails 5 Code Reading Teil 1 ~ ActiveRecord neue Methode ~
Ruby on Rails-Installationsmethode [Mac Edition]
Über Schienen 6
[Schienen] Verwendung der Kartenmethode
Schienenfundament
Rails Memorandum
Kartenmethode
Methode einschließen
Schienen Tutorial
Abstrakte Methode
Schienen Tutry
Methode initialisieren
Deshalb habe ich dieses Mal die Methode "Verknüpfen des Inhalts des Verzeichnisses" übernommen. Ich denke, es wird je nach Zeit und Fall richtig verwendet. Tutorial zu Linux, ln, Linux-Befehlsschienen
Listenmethode
setzt Methode
Java-Methode
Klassenmethode
Save! -Methode
getParameter-Methode
[Java] -Methode
[Schienen] erfinden
Schienen Tutry
[Rails] Zusammenfassung der Methoden zur Konvertierung / Überprüfung / Suche
private Methode
Schienen Tutorial
Schienen Tipps
[Rails] Verwendung der Hilfsmethode, Confimartion
Schienen Tutorial
Rails Review 2
[Java] -Methode
[Bestellmethode] Legen Sie die Reihenfolge der Daten in Rails fest
[Schienen] Unterschied zwischen Erstellungsmethode und neuer + Speichermethode
Rails-Fehler undefinierte Methode `image_name'for nil: NilClass-Behandlung
Ruby on Rails So implementieren Sie die automatische Adresseneingabe