58 votes

Rails : existe-t-il un Engine.Root ?

Rails.root renvoie un objet Path spécifiant la racine d'un projet Rails.

Existe-t-il un équivalent pour les moteurs Rails ? Comme Engine.root ? Sinon, comment pourrais-je construire un chemin à partir de la racine de mon moteur Rails ?

123voto

cowboycoded Points 7505

Disons que votre fichier moteur est configuré comme ceci :

module MyEngine
  class Engine < Rails::Engine
    #......
  end
end

Vous pouvez appeler Root sur la classe Engine comme ceci :

MyEngine::Engine.root

0voto

ninja08 Points 430

La réponse de John est juste, mais je la nettoierais un peu comme ça :

Lorsque vous montez votre moteur dans votre fichier de routes, ajoutez d'abord un alias.

mount YourEngineNameHere::Engine => '/optional_namespace', as: 'your_engine_name'

Ensuite, faites votre nom_de_moteur.root_url

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X