Forum: Rails-ES Extender el ActionController

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Roberto m. O. (Guest)
on 2008-11-03 20:35
Hola!

Estoy un pelin liado y no se como hacer lo siguiente:
Estoy desarrollando un plugin que expanda las capacidades del
ActionController. Para ello me he creado un modulo que incluyo en el
ActionController::Base con el siguiente comando

ActionController::Base.send :include, MiModulo::Controller

Por otro lado, el codigo que contiene el modulo es el siguiente:

  module MiModulo
    module Controller
      def self.included(mod)
        mod.extend(ClassMethods)
      end

      module ClassMethods
        def act_as_micontroller
          extend MiModulo::Controller::SingletonMethods
          include MiModulo::Controller::InstanceMethods
        end
      end

      module SingletonMethods
        def funcion_de_clase
        end
      end

      module InstanceMethods
        def funcion_de_instancia
        end
      end
    end
  end

Defino el controlador de la siguiente manera:

class PruebaController < ApplicationController
  act_as_micontroller

end

Creo que es mas de lo que yo necesito porque, por ahora me bastaria con
acceder a las funciones propias de la instancia (por ejemplo:
funcion_de_instancia) desde PruebaController (cosa que ahora mismo no
puedo, me da error de que no encuentra la funcion.
Por otro lado, es un poco engorroso el act_as_micontroller, ya os he
comentado que no es lo que necesito, pero si me interesa dejar el plugin
limpio para poder añadir mas funciones de clases y de instancia en un
futuro.

Por ultimo, me gustaria que la vista pudiese acceder a una variable de
instancia. Se que se puede hacer con la funcion: helper_attr.
Pero no se donde definir la variable para que pueda llamar a helper_attr
y quede disponible para la vista y, además, dicha variable quede
accesible a la funcion: funcion_de_instancia.

Os agradecería mucho que me arrojaseis un poco de luz en este tema
porque, si bien reconozco que estoy un poco verde en esto de Mixins, no
consigo que me funcione las mil y unas posibilidades que he encontrado
por internet.

Un saludo
Roberto M. Oliva
This topic is locked and can not be replied to.