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
generate
durchg
ersetzen.
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