[RUBY] Méthode de délégué Rails

Utilisez la méthode déléguée

Cet article est une suite de Présentation des présentateurs.

C'est le présentateur de modèle que j'ai créé la dernière fois. Je voudrais ajouter une méthode déléguée à ce présentateur

model_presenter.rb


class ModelPresenter
  attr_reader :object, :view_context

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

Le délégué de méthode de classe définit une méthode d'instance avec le nom spécifié dans l'argument. Et le travail de cette méthode est confié à l'objet retourné par la méthode spécifiée dans l'option to.

Cette fois, nous déléguons une méthode appelée raw à l'objet retourné par view_context

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

Au fait, le member_presenter créé la dernière fois était comme ça.

member_presenter.rb


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

L'utilisation de la méthode déléguée l'a rendu plus propre.

member_presenter.rb


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

De plus, en cas d'arrestation?

member_presenter.rb


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

Puisque la méthode arrest? Est un objet unique de l'objet membre, Je l'ai défini à la destination de l'héritage. En utilisant un délégué comme celui-ci, j'ai pu actualiser le présentateur.

C'est tout pour aujourd'hui !!

Recommended Posts

Méthode de délégué Rails
méthode des rails
[Rails] conçoit une méthode d'aide
[Rails] conçoit une méthode d'introduction
[Rails] nécessitent une méthode et une méthode d'autorisation
À propos de la méthode de raclage des rails Mechanize
[Rails] À propos de la méthode d'assistance form_with [Basic]
[Rails 6] détruit en utilisant la méthode des ressources
[Ruby on Rails] Méthode d'aide pratique
[Rails g. Erreur]
Rails Examen 1
API Rails
Migration des rails
Méthode Java
méthode to_i
java (méthode)
[Rails] first_or_initialize
Rails enum Sélectionnez la préfecture par méthode déroulante
Méthode getRequestDispatcher ()
méthode de fusion
Rails 5 Lecture de code Partie 1 ~ Nouvelle méthode ActiveRecord ~
Méthode d'installation de Ruby on Rails [édition Mac]
À propos des rails 6
[Rails] Comment utiliser la méthode de la carte
Fondation Rails
Mémorandum Rails
Méthode de la carte
inclure la méthode
tutoriel sur les rails
Méthode abstraite
rails tutry
méthode d'initialisation
tutoriel sur les rails
Méthode de liste
met méthode
Méthode Java
Méthode de classe
méthode save!
Méthode getParameter
[Java] méthode
[Rails] concevoir
rails tutry
[Rails] Résumé des méthodes de conversion / vérification / recherche
méthode privée
tutoriel sur les rails
Conseils de rails
[Rails] Comment utiliser la méthode d'assistance, confimartion
tutoriel sur les rails
Rails Revue 2
[Java] méthode
[Order method] Définit l'ordre des données dans Rails
[Rails] Différence entre la méthode de création et la méthode nouvelle + sauvegarde
Erreur Rails méthode non définie ʻimage_name'for nil: gestion NilClass
Ruby on Rails Comment implémenter la saisie d'adresse automatique