I'm using Draper gem for decorators.
I have two similar models, that doing the same, but using different databases.
In my namespaces I have prefix Clone::
. So, for instance: Car
and Clone::Car
.
I already have a decorator CarDecorator
for Car
model. All I want is to use this decorator for Clone::Car
as well, but when I'm trying to apply such code by using inheritance:
class Clone::CarDecorator < CarDecorator
end
I have an error in my specs:
Circular dependency detected while autoloading constant
Clone::Car
.
What is the best practice to implement single decorator per multiple models via Drapper gem?
CodePudding user response:
There were no answers, so I will post my solution.
It's possible to do this without inheritance and adding additional decorator by adding method #decorator_class
into "child" class.
So, according to the example above, it will looks like:
class CloneCar < ApplicationRecord
#...
def self.decorator_class
CarDecorator
end
#...
end
So, by such means, CarDecorator
will be using in the Car
model and CloneCar
model as well.