J'essaie de générer un contrôleur avec toutes les actions RESTful réduites. J'avais lu à texte du lien que tout ce que j'avais à faire, c'était d'utiliser le générateur d'appels avec juste un nom de contrôleur. J'ai donc lancé "script/generate rspec_controller Properties" et j'ai reçu un contrôleur vide.
Toute autre suggestion serait la bienvenue.
Je ne connais pas de méthode automatisée, mais si vous le faites:
script/generate controller your_model_name_in_plural new create update edit destroy index show
Tous seront créés pour vous
Mise à jour pour Rails 4
Rails g scaffold_controller Property
Dans Rails 3, il y a aussi Rails generate scaffold_controller ...
. Plus d'infos ici .
EDIT (à cause de certains commentaires) : La question initiale était en 2010 - par conséquent, la réponse n'est PAS pour Rails 4, mais pour Rails 2 !!
essayez d'utiliser des échafaudages.
script/generate scaffold controller Properties
Section des documents officiels sur Ruby sur Rails
Je suis sûr que vous pouvez trouver plus d'informations si vous effectuez une recherche google sur Rails échafaudages. J'espère que cela vous aidera.
EDIT: pour Rails 4
Rails g scaffold_controller Property
Dans Rails 4/5, la commande suivante fait l'affaire pour moi.
Rails g scaffold_controller Property --skip-template-engine
Il générait les actions du contrôleur mais pas la vue.
Rails 5.1
Vous avez créé un modèle sans contrôleur, ni vues (par exemple, thru: Rails generate model category
)
Mettre à niveau vers une ressource RESTful complète
Rails generate scaffold_controller category
Il remplace un contrôleur échafaudé, ses sept actions RESTful et les vues associées. (Remarque: vous pouvez transmettre le nom du modèle CamelCased ou under_scored.)
varus@septimusSrv16DEV4:~/railsapps/dblirish$ Rails generate scaffold_controller category
Running via Spring preloader in process 45681
create app/controllers/categories_controller.rb
invoke erb
create app/views/categories
create app/views/categories/index.html.erb
create app/views/categories/edit.html.erb
create app/views/categories/show.html.erb
create app/views/categories/new.html.erb
create app/views/categories/_form.html.erb
invoke test_unit
create test/controllers/categories_controller_test.rb
invoke helper
create app/helpers/categories_helper.rb
invoke test_unit
invoke jbuilder
create app/views/categories/index.json.jbuilder
create app/views/categories/show.json.jbuilder
create app/views/categories/_category.json.jbuilder
Vous cherchez un échafaudage.
Essayer:
script/generate scaffold Property
Cela vous donnera un contrôleur, un modèle, une migration et des tests associés. Vous pouvez ignorer la migration avec l'option --skip-migration
. Si vous ne voulez pas les autres, vous devrez les supprimer vous-même. Ne vous inquiétez pas pour écraser les fichiers existants, cela ne se produira que si vous utilisez --force
.
Comme le souligne klew dans les commentaires, cela définit également la méthode body pour vous, pas seulement les noms. Il est très utile d’utiliser comme point de départ pour votre contrôleur REST.
Dans Rails 4 c'est Rails g controller apps new create update edit destroy show index
Ou Rails generate controller apps new create update edit destroy show index
_ si vous voulez écrire le terme complet :).
propriété script/generate rspec_scaffold
Une solution consiste à créer un script qui accepte un paramètre, le nom du contrôleur, et à laisser le script saisir la commande dans son intégralité.
die () {
echo "Please supply new Rails controller name to generate."
echo >&2 "$@"
exit 1
}
[ "$#" -eq 1 ] || die "1 argument required, $# provided"
Rails g controller "$1" new create update edit destroy show index
Il n’ya aucun moyen (à ma connaissance? Documenté?) De remplacer un contrôleur par un échafaudage. Mais tu pourrais faire:
script/generate controller WhateverController new create edit update destroy show