Декоратор / Ведущий / Экспонаты и помощники - PullRequest
0 голосов
/ 15 марта 2019

Я прочитал:

Концерны, декораторы, докладчики, объекты обслуживания, помощники, помогите мне решить

и пытается выяснить разницу между докладчиками, объектами просмотра, декораторами, экспонатами и помощниками.

У меня есть несколько активных моделей записей, которые мне нужно отобразить в представлении с использованием метода show.

Примеры того, что мне нужно отобразить:

ClassModule SomeTypeOfPattern
   def name
     User.name
   end

   def car_name
     User.car.listing.car_name
   end
   def car  
      User.car
   end
   def car_marketing
     User.car.marketing
   end

   # AND 20 to 30 other similar delegations/methods from 4 related tables
end

Итак, если я делегирую эти отношения, как должен называться класс / модуль? Ведущий? Декоратор? Посмотреть объект? Я так смущен всеми этими терминами, но хочу следовать соглашению.

1 Ответ

1 голос
/ 16 марта 2019

Пример, который вы показываете, выглядит для меня как Presenter.

Presenter - это объект, который представляет другую информацию со своим собственным интерфейсом.

Если вы измениличто у вас есть немного, вы можете использовать это так:

ведущий

class UserCarPresenter
  attr_reader :user

  def initialize(user)
    @user = user
  end

  def name
    user.name
  end

  def car_name
    user.car.listing.car_name
  end

  def car  
    user.car
  end

  def car_marketing
    user.car.marketing
  end
end

контроллер

class CarsController < ApplicationController
  def show
    @user = UserPresenter.new(user)
  end
end

просмотр

<h1><%= @user.name %></h1>
<h2><%= @user.car_name %></h1>
...