He creado varios controladores & vistas en un espacio de nombres 'admin', pero todavía están tirando del diseño de la aplicación. ¿cómo puedo hacer un diseño que se aplique a todas las vistas en las rutas de espacio de nombres, y todavía usar el diseño actual para las otras páginas?rails 3: diseño para rutas con espacios de nombres
Respuesta
En términos generales, los carriles utilizará el diseño de la aplicación, si no hay un diseño que coincide con el controlador. Por ejemplo, si tiene un PeopleController, Rails buscará layouts/people.html.erb y, si no lo encuentra, application.html.erb.
Puede especificar explícitamente un diseño específico si desea anular esta convención.
class Admin::PeopleController
layout 'some_layout'
end
Ese controlador entonces utilizar some_layout.html.erb en lugar de buscar people.html.erb y application.html.erb.
Pero esto podría ser una mejor manera si usted está mirando para agrupar cosas: Si usted tiene una base de AdminController que hereda de ApplicationController, usted puede tener su, digamos, de administración :: PersonController heredan de la AdminController y heredará el diseño de administrador.
No sé los detalles de su código, pero es posible que tenga:
class AdminController
def show
#render a template linking to all the admin stuff
end
end
app/controllers/admin/people_controller.rb:
class Admin::PeopleController < AdminController
#your awesome restful actions in here!
end
views/layouts/admin.html.erb:
Hello from the Admin!
<%= yield %>
Lo único que sabe es que administración :: PeopleController heredará cualquier acción que AdminController ha definido (al igual que cualquier cosa definido en ApplicationController está disponible en todas las subclases). Esto generalmente no es un problema, ya que probablemente sobrescriba los métodos de todos modos, pero solo para estar al tanto. Si no tiene un AdminController, puede crear uno sin acciones solo para el diseño.
Normalmente tengo una clase de controlador Base en mi espacio de nombres, y luego todos los controladores en ese espacio de nombres heredan de ella. Eso me permite poner código específico de espacio de nombres común en Base y todos los controladores en ese espacio de nombres pueden aprovecharlo. Por ejemplo:
class Admin::BaseController < ApplicationController
layout 'admin'
before_filter :require_admin_user
end
class Admin::WidgetsController < Admin::BaseController
# inherits the 'admin' layout and requires an admin user
end
Creo que esto es más elegante y estructurado que la respuesta aceptada. ¿Hay alguna manera de hacer que todos los controladores generados por el comando 'rails g' hereden de' Admin :: BaseController'? – berezovskyi
¿dónde debería ir este controlador de base? – Sebastialonso
La clase del controlador es Admin :: BaseController, por lo que Rails asume que se definirá en el archivo base_controller.rb en la carpeta de controladores/admin. – IAmNaN
- 1. Rails Rutas espacios de nombres y form_for
- 2. Rails 3: rutas subdominio
- 3. Crear rutas con nombre para OmniAuth en Rails 3
- 4. Rails 3 - ¿Falta de rutas de índice?
- 5. Errores de ruta al utilizar rutas de espacios de nombres
- 6. Rails 3 link_to rutas (editar) recursos anidados
- 7. Espacios de nombres con recursos anidados Rails 3.2.8
- 8. Rutas rutas con nombres de nombres trabajan en desarrollo pero no en producción
- 9. ASP.NET MVC: espacios de nombres en las rutas
- 10. ¿Cómo probar rutas con Rspec 2 en Rails 3?
- 11. Rails 3 Admin Espacio de nombres Problema
- 12. PowerShell: paso de rutas calculadas con espacios
- 13. Rails 3 form_for rutas anidadas de acción personalizada
- 14. Rutas de carril: espacios de nombres de controlador con restricciones (subdominios)
- 15. Rails 3 Engines: cómo cambiar la prioridad de sus rutas
- 16. ¿Cómo pruebo las rutas en los complementos de Rails 3?
- 17. Agregar espacios de nombres a ASP.NET MVC 3 vistas
- 18. Rieles 3, rutas poco profundas
- 19. Rails 3: ¿Obtener el espacio de nombres actual?
- 20. Cómo extender espacios de nombres con EmberJS
- 21. Tipos de coerción en diferentes espacios de nombres con diseño idéntico en C#
- 22. XSD con importaciones y espacios de nombres
- 23. ColdFusion XmlSearch(): XPath con espacios de nombres
- 24. Restringir rutas de recursos y agregar rutas adicionales no RESTful en Rails 3
- 25. Campos dinámicos con Rails 3
- 26. Recursos para aprender Ajax con Rails 3
- 27. espacios de nombres con enlace externo
- 28. Cómo usar nuSOAP para mensajes con varios espacios de nombres
- 29. Rails 3 ¿Problemas con la ruta raíz?
- 30. bash_completion para Rails 3
La 'clase AdminController' está bajo' app/controllers' o 'app/controllers/admin'? – jdscosta91
en 'app/controllers' – Damien
Estoy intentando esto, y parece funcionar, pero pierdo los estilos y la funcionalidad que ofrecen los frameworks como Bootstrap o Semantic-UI. Alguna idea de como resolver esto? – Sebastialonso