単一テーブル継承を介して同じテーブルをすべて使用するモデルの大規模なセットを持つRailsプロジェクトがあります。それらはすべて異なるタイプの組織です。
組織モデルから継承するすべてのモデルのデコレーターを作成する必要なく、draper gemを使用してモデルを単純化することは可能ですか?
単一テーブル継承を介して同じテーブルをすべて使用するモデルの大規模なセットを持つRailsプロジェクトがあります。それらはすべて異なるタイプの組織です。
組織モデルから継承するすべてのモデルのデコレーターを作成する必要なく、draper gemを使用してモデルを単純化することは可能ですか?
#decorate
メソッドなしでオブジェクトを明示的に装飾できます。
app/decorators/organization_decorator.rb:
class OrganizationDecorator < Draper::Decorator
delegate_all
end
app/controllers/organizations_controller.rb:
class OrganizationsController < ApplicationController
def show
@organization = OrganizationDecorator.decorate(Organization.find(params[:id]))
end
end
次の方法でも試すことができます。
app/controllers/organizations_controller.rb:
class OrganizationsController < ApplicationController
decorates_assigned :organization, with: OrganizationDecorator
def show
@organization = Organization.find(params[:id])
end
end