Tengo dificultades para comprender cómo Rails 3.2 aplica diseños cuando se usan motores montables.Rails 3.2 Diseños de motor
Escenario: Estoy construyendo un motor que a su vez tiene una vista de tablero y una vista de administrador para varias funciones administrativas. Quiero que el tablero tenga su diseño reemplazable por la aplicación base (si el usuario lo desea) pero el administrador siempre debe usar su propio diseño.
Esto es lo que tengo en este momento dentro de mi motor;
application_controller.rb
module Myengine
class ApplicationController < ActionController::Base
admin/dashboard_controller.rb
module Myengine
class Admin::DashboardController < ApplicationController
ahora tengo mis motores application.html.erb aplicar un fondo rojo horrible mientras que el application.html.erb aplicaciones de base usa un fondo amarillo agradable para poder distinguir qué diseño de aplicación se está aplicando.
En esta situación, si tengo acceso a la aplicación base primero, veo mi fondo amarillo (desde la aplicación base) y si voy al motor y a la ruta de administración del motor, el fondo amarillo permanece.
Si reinicio el servidor y accedo primero al motor, entonces veo el fondo rojo para el motor y la ruta del administrador del motor, mientras que la aplicación base muestra el fondo amarillo.
Si modifico mi admin/dashboard_controller.rb de la siguiente manera;
module Myengine
class Admin::DashboardController < ApplicationController
layout 'myengine/application'
lo cual esperaría que sólo se aplican al controlador del motor/admin - pero si reinicio el servidor y acceder a la ruta del motor/admin veo el fondo rojo, mientras que la vista raíz del motor utiliza la aplicación base diseño amarillo.
Si reinicio el servidor nuevamente y accedo a la raíz del motor montado obtengo el fondo rojo aplicado que también permanece en la ruta de administración del motor.
Aaaaarggggghhhhh!
¿Se espera que el comportamiento tenga diferentes diseños de la aplicación utilizada según la ruta de acceso de la aplicación primero? ¿¿Seguramente no?? ¡Debo estar haciendo algo mal!
me di cuenta el mismo comportamiento con https://github.com/grigio/rails_container_and_engines :(pero añado el tema del motor a la main_app uno con < % = stylesheet_link_tag request.env ["action_dispatch.routes"]. routes.routes [0] .defaults [: controller],: media => "all"%> – grigio