simple-navigation y acciones dinamicas en el controlador

11 views
Skip to first unread message

josedes

unread,
Jul 23, 2015, 11:50:36 AM7/23/15
to rubysur
Hola a todos amigos.

Tengo el siguiente problema a ver quien me puede ayudar. Necesito generar un menú de navegación dinámico desde un modelo, estoy usando la gema simple-navigation, pero el problema sale cuando necesito que las acciones en el controlador sean dinamicas por que no las conozco a priori, por que el menú de navegación puede actualizable

Gracias por la ayuda de antemano

edelpero

unread,
Jul 24, 2015, 9:17:26 AM7/24/15
to rubysur, jos...@gmail.com
Hola josedes,

A que te referis cuando decis que las acciones en el controlador tienen que ser dinámicas?

Vi esa gema que estas usando, es para generar breadcrumbs, a eso te referis con los menús de navegación dinámicos? 

Te sugiero que le des una mirada a esta gema https://github.com/lassebunk/gretel, la use para un proyecto y fue muy sencilla de implementar para generar los breadcrumbs, ademas la documentación es bien detallada y con ejemplos.

Espero te haya servido la información.

Saludos,
Ezequiel

Jose De Sousa

unread,
Jul 24, 2015, 2:23:44 PM7/24/15
to Pablo Costa, rubysur
Hola Pablo y Ezequiel gracias por tu respuesta, el menu de navegación me refiero al menu en la barra de navegación de una aplicación, las opciones del menú deben ser  dinámicos, conozco el patron composite view pero no es lo que necesito, mis opciones son creadas dinamicamente se guardan en la BD y luego se muestran en la barra de navegación como opciones principales u opciones de submenu.

La gema que mencione sirve para eso, pero hay dos maneras de hacerlo, teniendo las rutas y las acciones ya creadas en el controlador lo cual no tiene mucho sentido, o crear un método general en  un controlador y que cada opción de menu generada siempre llame a la misma acción pero con algún atributo que identifique la opción y luego hacer el redirect respectivo.

Por eso la pregunta de generar acciones dinamicas en el controlador en funciones de las opciones del menu, ya tengo la generación de rutas de manera dinámica con el siguiente código:

 PagesController.action_methods.each do |action|
    get "/#{action}", to: "pages##{action}", as: "#{action}_page"
  end

Me faltaría generar las acciones dinamicamente también

Gracias por ayudar


El 24 de julio de 2015, 9:45, Pablo Costa <sis...@gmail.com> escribió:
Hola josedes,

Yo tampoco conozco la gema que mencionas. Pero hace unos años tuve que hacer un menú dinámico en C#, con sub menús desplegables, y lo resolví aplicando el patrón Composite. Cuando vuelva a mi casa voy a revisar si encuentro el código, que tal vez te sirva como ejemplo.

Saludos



--
OtusNet ©
Soluciones inteligentes
@ sus necesidades en Internet
Joselito De Sousa
(058)-0412.222.98.25

Nicolás Sanguinetti

unread,
Jul 24, 2015, 3:04:09 PM7/24/15
to rub...@googlegroups.com, Pablo Costa, rubysur
```
get “/:page” => “pages#show”, constraints: { page: PagesController.action_methods }, as: :page

def show
  render params[:page].to_sym
end

link_to “Blah”, page_path(page: :blah)
```

Algo como eso es lo que estás buscando, o entendí cualquiera?




--
Has recibido este mensaje porque estás suscrito al grupo "rubysur" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubysur+u...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Nicolás Sanguinetti

unread,
Jul 24, 2015, 3:05:12 PM7/24/15
to rub...@googlegroups.com, Pablo Costa, rubysur
Bah, haciendo eso no podrías usar `PagesController.action_methods`. Pero podrías tener `PagesController::AVAILABLE_PAGES = [:foo, :bar, :baz]` y usar eso en el routing constraint :)




On Fri, Jul 24, 2015 at 8:23 PM, Jose De Sousa <jos...@gmail.com> wrote:

--

Pablo Costa

unread,
Jul 28, 2015, 9:38:05 AM7/28/15
to rubysur, jos...@gmail.com
Hola josedes,

Yo tampoco conozco la gema que mencionas. Pero hace unos años tuve que hacer un menú dinámico en C#, con sub menús desplegables, y lo resolví aplicando el patrón Composite. Cuando vuelva a mi casa voy a revisar si encuentro el código, que tal vez te sirva como ejemplo.

Saludos

On Thursday, July 23, 2015 at 12:50:36 PM UTC-3, josedes wrote:
Reply all
Reply to author
Forward
0 new messages