Ruby on Rails
Rails génèrent des commandes
Recherche…
Introduction
Utilisation: les rails generate GENERATOR_NAME [args] [options]
.
Utilisez les rails generate
pour rails generate
liste des générateurs disponibles. Alias: rails g
.
Paramètres
Paramètre | Détails |
---|---|
-h / --help | Obtenir de l'aide sur n'importe quelle commande de générateur |
-p / --pretend | Mode de prétention: Exécuter le générateur mais ne créera ni ne modifiera aucun fichier |
field:type | «nom-de-champ» est le nom de la colonne à créer et «type» est le type de données de la colonne. Les valeurs possibles pour 'type' dans le field:type sont indiquées dans la section Remarques. |
Remarques
Les valeurs possibles pour 'type' dans le field:type
sont:
Type de données | La description |
---|---|
:string | Pour les petits morceaux de texte (a généralement une limite de caractères de 255) |
:text | Pour des morceaux de texte plus longs, comme un paragraphe |
:binary | Stockage de données comprenant des images, des audios et des vidéos |
:boolean | Stocker des valeurs vraies ou fausses |
:date | Seulement la date |
:time | Seul le temps |
:datetime | Date et l'heure |
:float | Stockage des flotteurs sans précision |
:decimal | Stockage des flotteurs avec précision |
:integer | Stocker des nombres entiers |
Rails Generate Model
Pour générer un modèle ActiveRecord
qui crée automatiquement les migrations de base de données et les fichiers de test corrects pour votre modèle, entrez cette commande.
rails generate model NAME column_name:column_type
'NAME' est le nom du modèle. "champ" est le nom de la colonne dans la table de base de données et "type" est le type de colonne (par exemple, name:string
ou body:text
). Consultez la section Remarques pour obtenir une liste des types de colonne pris en charge.
Pour configurer des clés étrangères, ajoutez belongs_to:model_name
.
Alors dites que vous vouliez configurer un modèle d' User
qui a un username
, un email
et qui appartient à une School
.
rails generate model User username:string email:string school:belongs_to
rails g
est un raccourci pour rails generate
. Cela produirait le même résultat
rails g model User username:string email:string school:belongs_to
Rails Générer Migration
Vous pouvez générer un fichier de migration des rails à partir du terminal à l'aide de la commande suivante:
rails generate migration NAME [field[:type][:index] field[:type][:index]] [options]
Pour obtenir une liste de toutes les options prises en charge par la commande, vous pouvez exécuter la commande sans aucun argument, car les rails generate migration
.
Par exemple, si vous voulez ajouter first_name
et last_name
champs à users
table, vous pouvez le faire:
rails generate migration AddNamesToUsers last_name:string first_name:string
Rails créera le fichier de migration suivant:
class AddNamesToUsers < ActiveRecord::Migration[5.0]
def change
add_column :users, :last_name, :string
add_column :users, :first_name, :string
end
end
Maintenant, appliquez les migrations en attente à la base de données en exécutant les opérations suivantes dans le terminal:
rake db:migrate
rails db:migrate
Note: Pour encore moins de saisie, vous pouvez remplacer
generate
parg
.
Rails Générer un échafaud
AVERTISSEMENT : L'échafaudage n'est pas recommandé, sauf s'il s'agit d'applications / tests CRUD très classiques. Cela peut générer beaucoup de fichiers (vues / modèles / contrôleurs) qui ne sont pas nécessaires dans votre application Web, provoquant ainsi des maux de tête (mauvais :().
Pour générer un échafaudage complet pour un nouvel objet, y compris le modèle, le contrôleur, les vues, les actifs et les tests, utilisez la commande rails g scaffold
.
$ rails g scaffold Widget name:string price:decimal invoke active_record create db/migrate/20160722171221_create_widgets.rb create app/models/widget.rb invoke test_unit create test/models/widget_test.rb create test/fixtures/widgets.yml invoke resource_route route resources :widgets invoke scaffold_controller create app/controllers/widgets_controller.rb invoke erb create app/views/widgets create app/views/widgets/index.html.erb create app/views/widgets/edit.html.erb create app/views/widgets/show.html.erb create app/views/widgets/new.html.erb create app/views/widgets/_form.html.erb invoke test_unit create test/controllers/widgets_controller_test.rb invoke helper create app/helpers/widgets_helper.rb invoke jbuilder create app/views/widgets/index.json.jbuilder create app/views/widgets/show.json.jbuilder invoke assets invoke javascript create app/assets/javascripts/widgets.js invoke scss create app/assets/stylesheets/widgets.scss
Ensuite, vous pouvez exécuter rake db:migrate
pour configurer la table de base de données.
Ensuite, vous pouvez visiter http: // localhost: 3000 / widgets et vous verrez un échafaudage CRUD entièrement fonctionnel.
Rails Generate Controller
nous pouvons créer un nouveau contrôleur avec des commandes de contrôleur de rails g controller
.
$ bin/rails generate controller controller_name
Le générateur de contrôleur attend des paramètres sous la forme de la generate controller ControllerName action1 action2
.
Ce qui suit crée un contrôleur de message d'accueil avec une action de salut.
$ bin/rails generate controller Greetings hello
Vous verrez la sortie suivante
create app/controllers/greetings_controller.rb
route get "greetings/hello"
invoke erb
create app/views/greetings
create app/views/greetings/hello.html.erb
invoke test_unit
create test/controllers/greetings_controller_test.rb
invoke helper
create app/helpers/greetings_helper.rb
invoke assets
invoke coffee
create app/assets/javascripts/greetings.coffee
invoke scss
create app/assets/stylesheets/greetings.scss
Cela génère le suivant
Fichier | Exemple |
---|---|
Fichier de contrôleur | greetings_controller.rb |
Voir la fiche | hello.html.erb |
Fichier de test fonctionnel | greetings_controller_test.rb |
Afficher l'aide | greetings_helper.rb |
Fichier JavaScript | greetings.coffee |
Il ajoutera également des routes pour chaque action dans routes.rb