Как создать декоратор для набора моделей с использованием одной таблицы?

У меня есть проект Rails, который имеет большой набор моделей, использующих одну и ту же таблицу через Single Table Inheritance. Это все разные типы организаций.

Можно ли использовать драгоценный камень для упрощения моей модели без необходимости создавать декоратор для каждой модели, которая наследуется от модели моей организации?

1 ответ

Решение

Вы можете явно украшать объект без #decorate метод.

приложение / декораторы /organization_decorator.rb:

class OrganizationDecorator < Draper::Decorator
  delegate_all
end

приложение / контроллеры /organizations_controller.rb:

class OrganizationsController < ApplicationController

  def show
    @organization = OrganizationDecorator.decorate(Organization.find(params[:id]))
  end
end

Вы также можете попробовать с:

приложение / контроллеры /organizations_controller.rb:

class OrganizationsController < ApplicationController

  decorates_assigned :organization, with: OrganizationDecorator

  def show
    @organization = Organization.find(params[:id])
  end
end
Другие вопросы по тегам