L’utilisation par Rails de conventions de nommage strictes signifie que beaucoup de code de base DEVRAIT être dans le même format quel que soit celui qui l’écrit ? Il pourrait être écrit par un ami, un collègue ou un ordinateur… cela ne devrait pas avoir d’importance car les mêmes règles Rails s’appliquent à tout le monde.
Cela signifie que Rails peut réellement faire certaines tâches pour vous !Il peut réellement construire des choses et écrire du code en votre nom….
Venant d’un autre langage comme le PHP, cela peut sembler magique.
Référence rapide:
rails g scaffold Post name:string title:string content:textrails g controller Commentsrails g model Comment commenter:string body:text article:references
##Rails generatorLa commande rails generate utilise des modèles conçus par convention pour créer tout un tas de choses utiles. Exécuter rails generate par lui-même donne une liste des générateurs disponibles:
rails generate
ou pour les super-hackers:
rails g
Il y a beaucoup de générateurs:
Rails :
- assets
- contrôleur
- générateur
- helper
- integration_test
- mailer
- migration
- model
- observer
- test_de_performance
- ressource
- scaffold
- scaffold_controller
- session_migration
- task
.
Café :
- coffee:assets
Jquery:
- jquery:install
Js:
- js :assets
##Scaffolding in Rails
L’outil de scaffolding de Rails est un moyen rapide de générer certains des principaux morceaux de code dans une application. Cela permet de gagner beaucoup de temps lorsque vous voulez être opérationnel rapidement ! (C’est super cool !)
Selon ce que vous voulez créer, le scaffolding peut générer automatiquement tout ou une combinaison de :
migrationsmodelsviewscontrollersunit_tests helpersstylesheetsjavascript
Il pourrait y avoir quelques fichiers supplémentaires qu’il fait…. Je ne suis pas sûr que ce soit une liste complète !
##Scaffolding d’une ressource entière
Vous scaffolding les choses associées à un objet (singulier)
Si vous voulez scaffold une application, vous devez scaffold chaque ressource dans cette application. Si vous voulez faire une application de blog par exemple – vous pourriez échafauder toute la ressource Post:
rails g scaffold Post
Le nom de la ressource Post
doit être:
- UpperCamelCase
- SINGULAR
Ce nom va être le nom du modèle, par exemple Post. Il va également être le nom de la classe du contrôleur (mais au pluriel), par exemple PostsController ET le nom de la table (mais au pluriel), par exemple posts
Après le nom de la classe, vous pouvez ajouter les colonnes de la table et leurs types de données.
rails g scaffold Post name:string title:string content:text
Ces noms de colonnes de table devraient être:
- lower_snake_case
- SINGULAR
C’est parce que chaque élément Post est censé avoir une valeur stockée dans chaque colonne.
Si vous exécutez ce scaffold, il créera tous ces fichiers :
Dans le PostController, toutes les méthodes RESTful seront créées et elles auront toutes leurs fichiers de vue correspondants.
Après avoir créé le fichier de migration, afin d’effectuer la modification de la base de données n’oubliez pas d’exécuter:
rake db:migrate
##Générer juste un contrôleur
Il contrôle beaucoup d’objets (donc c’est au pluriel)
Parfois, vous voulez générer juste un contrôleur.
rails g controller Comments
Le nom du contrôleur doit être :
- UpperCamelCase
- PLURALIZED
C’est parce qu’un contrôleur traite beaucoup d’exemples d’un objet, il doit donc être au pluriel.
Cela va créer ces fichiers :
Cela ne va PAS créer un fichier de migration ou un fichier de modèle.
##Générer juste un modèle
Vous générez le contour d’un objet (singulier)
Si vous voulez juste créer un modèle, vous pouvez faire :
rails g model Comment
- UpperCamelCase
- SINGULAR
Vous pouvez aussi y ajouter les noms des colonnes si vous le souhaitez :
rails g model Comment commenter:string body:text article:references
Ces noms de colonnes de table devraient être:
- Casse_snake inférieure
- SINGULAIRE
La génération d’un modèle créera ces fichiers:
.