Ruby on Rails

Rails Engines & Apps modulaires

Mountable engines, isolated engines, namespacing, gem-based architecture

18 questions d'entretien·
Senior
1

Qu'est-ce qu'un Rails Engine ?

Réponse

Un Rails Engine est une application Rails miniature qui peut être montée dans une application hôte. Il permet de partager du code (models, controllers, views, routes) entre plusieurs applications ou de créer des fonctionnalités isolées et réutilisables. Les gems comme Devise, Sidekiq Web UI et ActiveAdmin sont des exemples d'engines populaires utilisés dans l'écosystème Rails.

2

Quelle commande permet de générer un nouveau Rails Engine mountable ?

Réponse

La commande rails plugin new avec l'option --mountable génère un engine complet avec son propre namespace, ses routes isolées et sa structure de dossiers. L'option --mountable crée un engine entièrement isolé de l'application hôte, contrairement à --full qui génère un engine non-isolé partageant le namespace de l'application principale.

3

Quelle est la différence principale entre un engine --mountable et un engine --full ?

Réponse

Un engine --mountable est entièrement isolé avec son propre namespace (module), ses propres helpers et ses routes isolées sous un préfixe configurable. Un engine --full partage le namespace de l'application hôte, ce qui peut créer des conflits de noms. L'isolation du mountable engine garantit que les classes et routes de l'engine ne polluent pas l'espace de noms de l'application principale.

4

Comment monter un Rails Engine dans le fichier routes.rb de l'application hôte ?

5

À quoi sert la directive isolate_namespace dans un Rails Engine ?

+15 questions d'entretien

Maîtrise Ruby on Rails pour ton prochain entretien

Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.

Commencer gratuitement