93 votes

Générer un contrôleur avec toutes les fonctions RESTful.

J'essaie de générer un contrôleur avec toutes les actions RESTful stubées. J'ai lu à 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 ça. Donc, j'ai lancé script/generate rspec_controller Properties mais j'ai obtenu un contrôleur vide.

Toute autre suggestion serait grandement appréciée.

1 votes

Thenduks, si j'avais autant d'expérience que vous, ce serait vrai, mais je ne connais même pas les 7 actions de repos de tête, je devrais donc les chercher sur Google et faire des allers-retours entre la page et mon application pour les saisir. Une fois que je les connais, je suis d'accord que votre solution est plus facile.

153voto

Marcos Placona Points 8351

Je ne connais pas de moyen automatisé de le faire, mais si vous le faites :

script/generate controller your_model_name_in_plural new create update edit destroy index show

Ils seront tous créés pour vous

Mise à jour pour Rails 4

rails g scaffold_controller Property

7 votes

Excellente réponse. Les experts peuvent ignorer le reste. Note aux noobs - si vous nommez votre contrôleur PropertyController comme je l'ai mal compris :) vous obtiendrez PropertyController Controller :)

2 votes

Ma réponse fait exactement la même chose - sauf que vous n'avez pas besoin de spécifier toutes les 7 actions par défaut.

4 votes

Juste une note... ceci génère seulement un contrôleur avec des méthodes nommées pour des actions CRUD de base. Les routes sont loin d'être RESTful... e.g. route get "mycontroller/create" (créer devrait être un poste)

97voto

gdelfino Points 6527

Dans Rails 3, il y a aussi rails generate scaffold_controller ... . Plus d'informations aquí .

1 votes

Je préfère cette méthode car elle génère des routes RESTful. Utilisation de rails g controller Foos create générerait une route pour get '/create' ce qui n'est pas du tout RESTful.

39voto

Nick Gorbikoff Points 3144

EDIT (suite à certains commentaires) : La question originale était en 2010 - donc la réponse n'est PAS pour les RAILS 4 , mais pour les rails 2 ! !!

essayez d'utiliser un échafaudage.

script/generate scaffold controller Properties

Section de la documentation officielle sur Ruby On Rails

Je suis sûr que vous pouvez trouver plus d'informations si vous faites une recherche google sur les échafaudages en rails. J'espère que cela vous aidera.

EDIT : Pour RAILS 4

rails g scaffold_controller Property

0 votes

Pouvez-vous script/générer les propriétés du contrôleur rspec_scaffold ?

0 votes

Oui, vous pouvez. Voici des informations/tutoriels détaillés : blog.davidchelimsky.net/2007/05/14/

0 votes

Je pense que cette réponse est dépassée pour les versions récentes de Rails. Cela va simplement créer un échafaudage entier pour l'objet/modèle appelé "controller".

7voto

molf Points 34978

Vous cherchez un échafaudage.

Essayez :

script/generate scaffold Property

Cela vous donnera un contrôleur, un modèle, une migration et des tests associés. Vous pouvez sauter la migration avec l'option --skip-migration . Si vous ne voulez pas des autres, vous devrez les supprimer vous-même. Ne vous inquiétez pas de l'écrasement des fichiers existants, cela ne se produira pas à moins que vous n'utilisiez la commande --force .

Comme le souligne klew dans les commentaires, cela définit également la méthode corps pour vous, pas seulement les noms. Il est très utile de l'utiliser comme point de départ pour votre contrôleur REST.

0 votes

@Barb, je pense que Scaffolding serait mieux pour vous car il ne se contente pas de déclarer toutes les fonctions mais il les définit également. Il est bon de les créer au moins une fois et de les avoir comme exemple.

2voto

marflar Points 13293

Script/générer la propriété rspec_scaffold

0 votes

Et oui, je me rends compte que vous avez déjà accepté une réponse à ce sujet, mais je pense que cette solution pourrait également aider les personnes qui lisent ce message.... solution ci-dessus créera un modèle etc, que vous pouvez simplement supprimer si vous n'en avez pas besoin.

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