J'ai un moteur rails, Un itinéraire moteur: p> Exemple de sortie de si pour rendre: p> mais j'avais tort. Au lieu de cela, je reçois une exception: p> donc, rails semble ajouter myengine code>, qui n'a pas d'espace de noms isolé. J'essaie d'utiliser les aides polymorphes pour générer des liens vers des ressources, conformément au docs .
Rake App: Itinéraires Code> (N'oubliez pas que ceci est un moteur): P>
my_resource code> est une instance d'un modèle
myResource code> Modèle avec ID
12345 code>, je m'attendais à: p>
polymorphic_url code> tente d'utiliser
admin_my_engine_my_resource_path code> où il devrait vraiment utiliser quelque chose de plus comme
my_engine.admin_my_resource_path (my_resource) code> p>
: admin code> le mauvais chemin autour ... ou je le fais mal ? p> p>
3 Réponses :
exécuter routes râte code> et obtenez le nom de la fonction d'aide de l'URL à partir de là. Vous pouvez partager les itinéraires
râte code> ici aussi. P>
J'ai besoin des aides sur les itinéraires polymorphes pour travailler. Appelant my_Engine.admin_my_resource (my_resource) code> fonctionne bien mais l'équivalent utilisant
polymorphic_url code> n'est pas. Je vais modifier ma question pour être un peu plus claire.
Juste pour des éclaircissements. polymorphic_url ([: my_Engine,: admin, my_resource]) code> travail? Il suffit de symboliser le
my_engine code>. Je ne peux pas tester cela dans ma machine en ce moment alors vous demandant :)
Avez-vous essayé de le faire via une portée au lieu d'un espace de noms? p>
Voir cet article pour une meilleure explication. Rails Scoped Routing P >
Un bon exemple de ceci est le gem du congé. p>
bonne chance! p>
Votre réponse m'a suscité de rechercher plus près de l'espace de noms code> et de la portée code> et j'ai fini par créer des échéances telles que le module
Scope: "admin", comme suit: "admin" " code> pour le contourner. Merci!
J'ai récemment rencontré ce problème dans les rails 5 et j'ai trouvé la solution générale suivante.
donné mon moteur appelé Yamscore, qui génère des aides d'URL habituels sous forme: P>
path = polymorphic_path([view.engine_prefix, my_resource])