My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
ConfiguracionDeModulos  
Configuración de los módulos de la aplicación.
Updated Dec 15, 2007 by cko...@gmail.com

Modulos

Los módulos de la aplicación son las pestañas que se mostrarán para realizar la navegación. Pueden ser asignados a nivel de clase o de instancia.

Modulos a nivel de clase

Deberán ser definidos en la clase ApplicationController y serán comunes a toda la aplicación.

class ApplicationController < ActionController::Base
  set_module :productos
  set_module :rubros
end

Modulos a nivel de instancia

También pueden ser definidos a nivel de instancia, es decir, en un método de instancia de la clase ApplicationController o alguna de sus subclases.

La diferencia principal, consiste en que de este modo, es posible realizar las definiciones en forma dinámica según los valores que haya en el controller al momento de ejecutarse. Se podrán considerar los valores de la session para determinar el perfil del usuario logueado, el nombre del controller que está siendo llamado, etc.

class ApplicationController < ActionController::Base

  def modules
    set_module :productos
    set_module :rubros
    set_module :parametros if @current_user.is_admin?
  end
end

Modulos a nivel de subclases

Disclaimer: Funcionalidad aún no probada.

Como la definición de módulos a nivel de instancia utiliza la nueva funcionalidad de rails delegating_superclass_accessors, es posible definir para cada subclase valores distintos. Ej:

class ApplicationController < ActionController::Base
  set_module :productos
end

class UserApplication < ApplicationController
  set_module :compras
end

class AdminApplication < ApplicationController
  set_module :parametros
end

Esto permitirá que cuando un controller dependa de alguna de estas subclases en particular, utilice los módulos correspondientes.

Sintaxis para la definición de módulos

El método set_module toma como parámetros el nombre de módulo a definir y opcionalmente un hash de opciones. El hash de opciones permite reemplazar los siguientes valores por defecto:

:caption = Nombre a mostrar en la pestaña. Por defecto se toma el nombre del módulo en formato "humanized".
:url = Dirección del enlace en la pestaña. Por defecto se crea un enlace al index del controller con nombre igual al del módulo.

Ej:

set_module :productos, :caption => 'Articulos', :url => activos_productos_url()

Sign in to add a comment
Powered by Google Project Hosting