我有一个 Rails 项目,其中有大量模型都通过单表继承使用同一个表。它们都是不同类型的组织。
是否可以使用draper gem来简化我的模型,而无需为从我的组织模型继承的每个模型创建装饰器?
我有一个 Rails 项目,其中有大量模型都通过单表继承使用同一个表。它们都是不同类型的组织。
是否可以使用draper gem来简化我的模型,而无需为从我的组织模型继承的每个模型创建装饰器?
#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