Ruby on Rails

Rails Engines y apps modulares

Mountable engines, isolated engines, namespacing, arquitectura basada en gem

18 preguntas de entrevista·
Senior
1

¿Qué es un Rails Engine?

Respuesta

Un Rails Engine es una aplicación Rails en miniatura que se puede montar dentro de una aplicación anfitriona. Permite compartir código (models, controllers, views, routes) entre varias aplicaciones o crear funcionalidades aisladas y reutilizables. Gems como Devise, Sidekiq Web UI y ActiveAdmin son ejemplos de engines populares usados en el ecosistema Rails.

2

¿Qué comando se usa para generar un nuevo Rails Engine mountable?

Respuesta

El comando rails plugin new con la opción --mountable genera un engine completo con su propio namespace, sus routes aisladas y su estructura de carpetas. La opción --mountable crea un engine totalmente aislado de la aplicación anfitriona, a diferencia de --full, que genera un engine no aislado que comparte el namespace de la aplicación principal.

3

¿Cuál es la principal diferencia entre un engine --mountable y un engine --full?

Respuesta

Un engine --mountable está totalmente aislado con su propio namespace (module), sus propios helpers y routes aisladas bajo un prefijo configurable. Un engine --full comparte el namespace de la aplicación anfitriona, lo que puede generar conflictos de nombres. El aislamiento del mountable engine garantiza que las clases y routes del engine no contaminen el namespace de la aplicación principal.

4

¿Cómo montar un Rails Engine en el archivo routes.rb de la aplicación anfitriona?

5

¿Para qué sirve la directiva isolate_namespace en un Rails Engine?

+15 preguntas de entrevista

Domina Ruby on Rails para tu próxima entrevista

Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.

Empieza gratis