Zoeken…


Invoering

Gebruik: rails generate GENERATOR_NAME [args] [options] .

Gebruik rails generate om beschikbare generatoren weer te geven. Alias: rails g .

parameters

Parameter Details
-h / --help Hulp bij elk generatorcommando
-p / --pretend Fantasiemodus: generator uitvoeren maar geen bestanden maken of wijzigen
field:type 'veldnaam' is de naam van de kolom die moet worden gemaakt en 'type' is het gegevenstype van de kolom. De mogelijke waarden voor 'type' in field:type worden gegeven in de sectie Opmerkingen.

Opmerkingen

De mogelijke waarden voor 'type' in field:type zijn:

Data type Beschrijving
:string Voor kleinere stukjes tekst (heeft meestal een tekenlimiet van 255)
:text Voor langere stukken tekst, zoals een paragraaf
:binary Gegevens opslaan, inclusief afbeeldingen, audio en video's
:boolean Waar of onwaar waarden opslaan
:date Alleen de datum
:time Alleen de tijd
:datetime Datum en tijd
:float Floats opslaan zonder precisie
:decimal Drijvers met precisie opslaan
:integer Hele getallen opslaan

Rails genereren model

Voer deze opdracht in om een ActiveRecord model te genereren dat automatisch de juiste DB-migraties en standaardtestbestanden voor uw model maakt.

rails generate model NAME column_name:column_type

'NAAM' is de naam van het model. 'veld' is de naam van de kolom in de DB-tabel en 'type' is het kolomtype (bijvoorbeeld name:string of body:text ). Controleer het gedeelte Opmerkingen voor een lijst met ondersteunde kolomtypen.

Als u externe sleutels wilt instellen, voegt u belongs_to:model_name .

Stel dat u een User wilt instellen dat een username en email en tot een School behoort. Typ het volgende in

rails generate model User username:string email:string school:belongs_to

rails g is afkorting voor rails generate . Dit zou hetzelfde resultaat opleveren

rails g model User username:string email:string school:belongs_to

Rails genereren migratie

U kunt een rails-migratiebestand vanaf de terminal genereren met de volgende opdracht:

rails generate migration NAME [field[:type][:index] field[:type][:index]] [options]

Voor een lijst met alle opties die door de opdracht worden ondersteund, kunt u de opdracht zonder argumenten uitvoeren, omdat in rails generate migration .

Bijvoorbeeld, als u wilt toevoegen first_name en last_name velden om users tafel, kunt u doen:

rails generate migration AddNamesToUsers last_name:string first_name:string

Rails maakt het volgende migratiebestand aan:

class AddNamesToUsers < ActiveRecord::Migration[5.0]
  def change
    add_column :users, :last_name, :string
    add_column :users, :first_name, :string
  end
end

Pas nu de uitstaande migraties toe op de database door het volgende in de terminal uit te voeren:

5.0
rake db:migrate
5.0
rails db:migrate

Opmerking: voor nog minder typen kunt u generate vervangen door g .

Rails genereren steigers

DISCLAIMER : Steigers worden niet aanbevolen, tenzij voor zeer conventionele CRUD-apps / testen. Dit kan veel bestanden (weergaven / modellen / controllers) genereren die niet nodig zijn in uw webtoepassing en dus hoofdpijn veroorzaken (slecht :().

Gebruik de opdracht rails g scaffold om een volledig werkende steiger voor een nieuw object te genereren, inclusief model, controller, views, activa en tests.

$ 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

Vervolgens kunt u rake db:migrate om de databasetabel in te stellen.

Ga dan naar http: // localhost: 3000 / widgets en je ziet een volledig functionele CRUD-steiger.

Rails genereren controller

we kunnen een nieuwe controller maken met rails g controller .

$ bin/rails generate controller controller_name

De controllergenerator verwacht parameters in de vorm van het generate controller ControllerName action1 action2 .

Het volgende maakt een groeten-controller met een actie van hallo.

$ bin/rails generate controller Greetings hello

U ziet de volgende uitvoer

     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

Dit genereert het volgende

het dossier Voorbeeld
Controller bestand greetings_controller.rb
Bestand bekijken hello.html.erb
Functioneel testbestand greetings_controller_test.rb
Bekijk Helper greetings_helper.rb
JavaScript-bestand greetings.coffee

Het voegt ook routes toe voor elke actie in routes.rb



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow