J'essaye de générer un contrôleur avec toutes les actions RESTful stubbed. J'avais lu sur Wikibooks - Ruby on Rails que tout ce que j'avais à faire était d'appeler le générateur avec le nom du contrôleur et j'obtiendrais exactement cela. Donc, j'ai couru script/generate rspec_controller Properties
mais j'ai un contrôleur vide.
Toute autre suggestion serait la bienvenue.
ruby-on-rails
controller
rest
rspec
Barbillon
la source
la source
Réponses:
Je ne connais pas un moyen automatisé de le faire, mais si vous le faites:
Tous seront créés pour vous
Mise à jour pour Rails 4
la source
route get "mycontroller/create"
(create should be a post)Dans Rails 3, il y en a aussi
rails generate scaffold_controller ...
. Plus d'infos ici .la source
rails g controller Foos create
générerait une route pourget '/create'
laquelle ce n'est pas du tout RESTful.EDIT (en raison de certains commentaires) : La question d'origine était en 2010 - donc la réponse n'est PAS pour RAILS 4, mais pour les rails 2 !!
essayez d'utiliser des échafaudages.
Section des documents officiels sur Ruby On Rails
Je suis sûr que vous pouvez trouver plus d'informations si vous effectuez une recherche Google sur les échafaudages de rails. J'espère que ça t'as aidé.
EDIT: Pour RAILS 4
rails g scaffold_controller Property
la source
rails g scaffold_controller Property
fonctionne également dans les rails 3.2. Cela créera un PropertiesController avec les 7 actions RESTful par défaut et leurs vues respectives, sans modèle.Dans Rails 4/5, la commande suivante fait l'affaire pour moi.
Il a généré les actions du contrôleur mais pas la vue.
la source
Rails 5.1
Point de départ:
Vous avez créé un modèle sans contrôleur, ni des vues (par exemple à travers:
rails generate model category
)Objectif:
Mettez-le à niveau vers une ressource RESTful complète
Commander:
rails generate scaffold_controller category
Il stubs 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.)
Production:
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
la source
Vous recherchez des échafaudages.
Essayer:
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 de l'écrasement des fichiers existants, cela ne se produira que si vous utilisez--force
.Comme le souligne klew dans les commentaires, cela définit également les corps des méthodes pour vous, pas seulement les noms. Il est très utile de l'utiliser comme point de départ pour votre contrôleur REST.
la source
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 :).la source
rails g scaffold_controller apps
dans Rails 4script / generate, propriété rspec_scaffold
la source
Il n'y a aucun moyen (que je sache? Qui est documenté?) Pour stuber un contrôleur sauf à travers un échafaudage. Mais vous pouvez faire:
la source
Une solution consiste à créer un script qui accepte un paramètre, le nom du contrôleur, et à laisser le script saisir la commande entière pour vous.
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
la source