Je souhaite générer l'échafaudage dans une application Rails, en générant le modèle comme d'habitude mais en ayant le contrôleur dans l'espace de noms d'administration. C'est possible?Peut générer échafaudage mettre le contrôleur dans un espace de noms?
Répondre
La première fois que je l'ai fait, je lance
script/generate scaffold blog
puis refactorisé le contrôleur, vues, etc. Ma solution préférée en ce moment est:
script/generate scaffold admin::blog
puis factoriser le modèle, le test unitaire et la migration; c'est moins de travail.
S'il y a une meilleure réponse, je l'accepterai.
Cette question est assez largement posée sur stackoverflow. Et j'ai également fait face à ce problème et trouvé aucune solution standard pour cela.
Donc, j'ai créé rails-admin-scaffold gem (pour l'instant c'est Rails 4 seulement) qui automatise ce processus et a écrit an article avec une explication plus détaillée. J'espère que ça serait utile pour quelqu'un.
J'ai un modèle appelé Admin et votre gem ne fonctionne pas –
@ArnoldRoa J'ai également rencontré un tel problème. S'il y a un modèle appelé Admin, alors il est impossible d'avoir l'espace de noms 'Admin' - parce que les rails le nommeront avec un module avec le même nom - donc, ce serait un conflit de noms. – songyy
Vous pouvez le faire pour rails < 3:
script/generate scaffold Blog title:string
ou
script/generate scaffold admin::blog title:string
Pour rails> 3:
rails g scaffold Blog title:string
ou
rails g scaffold admin/blog title:string
admin/blog fonctionne un peu mieux pour moi, mais c'est seulement un peu et très probablement totalement subjectif. – ere
dans Rails> 3 'rails g échafaudage admin/blog' –