Ruby on Rails
Rails erzeugen Befehle
Suche…
Einführung
Verwendung: rails generate GENERATOR_NAME [args] [options] .
Verwenden Sie rails generate um verfügbare Generatoren aufzulisten. Alias: rails g .
Parameter
| Parameter | Einzelheiten |
|---|---|
-h / --help | Hilfe zu jedem Generator-Befehl erhalten |
-p / --pretend | Pretend Mode: Generator ausführen, aber keine Dateien erstellen oder ändern |
field:type | 'Feldname' ist der Name der zu erstellenden Spalte und 'Typ' ist der Datentyp der Spalte. Die möglichen Werte für 'type' in field:type sind im Abschnitt "Anmerkungen" angegeben. |
Bemerkungen
Die möglichen Werte für 'Typ' in field:type sind:
| Datentyp | Beschreibung |
|---|---|
:string | Für kleinere Textstücke (hat normalerweise eine Zeichenbegrenzung von 255) |
:text | Für längere Textstücke wie einen Absatz |
:binary | Speichern von Daten einschließlich Bildern, Audios und Videos |
:boolean | Speichern von wahren oder falschen Werten |
:date | Nur das Datum |
:time | Nur die zeit |
:datetime | Datum und Uhrzeit |
:float | Schwimmer ohne Genauigkeit lagern |
:decimal | Schwimmer präzise lagern |
:integer | Speichern ganzer Zahlen |
Schienen erzeugen Modell
Um zu erzeugen ActiveRecord Modell , das automatisch die richtige db Migrationen & vorformulierten Testdateien für Ihr Modell erstellt, geben Sie diesen Befehl
rails generate model NAME column_name:column_type
'NAME' ist der Name des Modells. 'Feld' ist der Name der Spalte in der DB-Tabelle und 'Typ' ist der Spaltentyp (zB name:string oder body:text ). Überprüfen Sie den Abschnitt "Bemerkungen" auf eine Liste der unterstützten Spaltentypen.
Zum Einrichten von Fremdschlüsseln fügen Sie belongs_to:model_name .
Angenommen, Sie wollten ein User einrichten, das einen username und eine email und zu einer School gehört. username Sie Folgendes ein
rails generate model User username:string email:string school:belongs_to
rails g ist eine Abkürzung für rails generate . Dies würde das gleiche Ergebnis erzielen
rails g model User username:string email:string school:belongs_to
Schienen erzeugen Migration
Sie können eine Rails-Migrationsdatei mit dem folgenden Befehl vom Terminal aus generieren:
rails generate migration NAME [field[:type][:index] field[:type][:index]] [options]
Für eine Liste aller vom Befehl unterstützten Optionen können Sie den Befehl ohne Argumente ausführen, da rails generate migration in rails generate migration .
Wenn Sie zum last_name Felder first_name und last_name zur users hinzufügen möchten, können Sie first_name tun:
rails generate migration AddNamesToUsers last_name:string first_name:string
Rails erstellt die folgende Migrationsdatei:
class AddNamesToUsers < ActiveRecord::Migration[5.0]
def change
add_column :users, :last_name, :string
add_column :users, :first_name, :string
end
end
Wenden Sie nun die ausstehenden Migrationen auf die Datenbank an, indem Sie Folgendes im Terminal ausführen:
rake db:migrate
rails db:migrate
Hinweis: Um noch weniger zu tippen, können Sie
generatedurchgersetzen.
Schienen erzeugen Gerüst
HAFTUNGSAUSSCHLUSS : Gerüste werden nicht empfohlen, es sei denn, es handelt sich um sehr herkömmliche CRUD-Apps / -Tests. Dadurch können viele Dateien (Ansichten / Modelle / Controller) generiert werden, die in Ihrer Webanwendung nicht benötigt werden. Dies führt zu Kopfschmerzen (bad :().
Um ein voll funktionsfähiges Gerüst für ein neues Objekt zu erstellen, einschließlich Modell, Controller, Ansichten, Assets und Tests, verwenden Sie den Befehl 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
Dann können Sie rake db:migrate ausführen, um die Datenbanktabelle einzurichten.
Dann können Sie die http: // localhost: 3000 / Widgets besuchen und sehen ein voll funktionsfähiges CRUD-Gerüst.
Schienen generieren Controller
Wir können einen neuen Controller mit rails g controller Befehl erstellen.
$ bin/rails generate controller controller_name
Der Controller-Generator erwartet Parameter in der Form generate controller ControllerName action1 action2 .
Im Folgenden wird ein Greetings-Controller mit einer Aktion von Hallo erstellt.
$ bin/rails generate controller Greetings hello
Sie sehen die folgende Ausgabe
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
Dies generiert Folgendes
| Datei | Beispiel |
|---|---|
| Controller-Datei | greetings_controller.rb |
| Datei ansehen | hello.html.erb |
| Funktionstestdatei | greetings_controller_test.rb |
| Helfer anzeigen | greetings_helper.rb |
| JavaScript-Datei | greetings.coffee |
Es werden auch Routen für jede Aktion in routes.rb