I need an abstract controller to redirect the execution of the "create" and "show" actions implemented in modules, according to values passed through params, eg:
class Indicator::AbstractController < ApplicationController
# é aqui que não funciona
# sei que aqui é a definição da classe, portanto não dá para
# utilizar as variáveis de instancia
include ConcreteController1 if params[:resource_type_id].eql?(1)
include ConcreteController2 if params[:resource_type_id].eql?(2)
#não implementa method/action create
#não implementa method/action show
# já tentei implementar as actions create e view e redirecionar a execução para
# os módulos concretos, mas não consegui.
end
Module ConcreteController1
def create
# metodo de criação especial para o controller1
end
def show
# view especial para o controller1
end
end
Module ConcreteController2
def create
# metodo de criação especial para o controller2
end
def show
# view especial para o controller2
end
end
I've tried converting the modules into classes ConcreteController < ApplicationController and redirection via routes but also had difficulties because the number of concrete controllers is variable.
We are in a legacy application in Rails 3.2