Sök…


Introduktion

Användning: rails generate GENERATOR_NAME [args] [options] .

Använd rails generate att lista tillgängliga generatorer. Alias: rails g .

parametrar

Parameter detaljer
-h / --help Få hjälp med alla generatorkommandon
-p / --pretend Låtsasläge: Kör generator men skapar eller ändrar inga filer
field:type "fältnamn" är namnet på kolumnen som ska skapas och "typ" är kolumnens datatyp. De möjliga värdena för 'typ' i field:type anges i avsnittet Kommentarer.

Anmärkningar

De möjliga värdena för 'typ' i field:type är:

Data typ Beskrivning
:string För mindre textbitar (har vanligtvis en teckengräns 255)
:text För längre textstycken, som ett stycke
:binary Lagring av data inklusive bilder, ljud och videor
:boolean Lagring av sanna eller falska värden
:date Endast datumet
:time Bara tiden
:datetime Datum och tid
:float Förvaring av flottörer utan precision
:decimal Förvaring av flottörer med precision
:integer Lagra hela siffror

Rails Generera Model

Om du ActiveRecord generera en ActiveRecord modell som automatiskt skapar korrekta db-migreringar och testfiler för din pannaplatta för din modell anger du detta kommando

rails generate model NAME column_name:column_type

'NAME' är modellens namn. 'fält' är namnet på kolumnen i DB-tabellen och 'typ' är kolumntypen (t.ex. name:string eller body:text ). Kontrollera avsnittet Kommentarer för en lista med kolumntyper som stöds.

För att ställa in främmande nycklar, lägg till belongs_to:model_name .

Så säger du ville installera ett User som har en username , email och tillhör en School , skriver du in följande

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

rails g är kortfattat för rails generate . Detta skulle ge samma resultat

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

Rails genererar migration

Du kan generera en rails migrationsfil från terminalen med följande kommando:

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

För en lista över alla alternativ som stöds av kommandot kan du köra kommandot utan några argument eftersom i rails generate migration .

Om du till exempel vill lägga till first_name och last_name till users kan du göra:

rails generate migration AddNamesToUsers last_name:string first_name:string

Rails skapar följande migreringsfil:

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

Använd nu de väntande migreringarna i databasen genom att köra följande i terminalen:

5,0
rake db:migrate
5,0
rails db:migrate

Obs: För ännu mindre maskinskrivning kan du ersätta generate med g .

Rävar genererar ställning

ANSVARSFRISKER : Ställning rekommenderas inte om det inte är för mycket konventionella CRUD-appar / tester. Detta kan generera många filer (vyer / modeller / kontroller) som inte behövs i din webbapplikation och därmed orsaka huvudvärk (dåligt :().

För att generera ett fullt fungerande ställning för ett nytt objekt, inklusive modell, styrenhet, vyer, tillgångar och tester, använder du 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

Sedan kan du köra rake db:migrate att ställa in databastabellen.

Då kan du besöka http: // localhost: 3000 / widgets och du ser ett fullt fungerande CRUD-ställning.

Rails Generer Controller

vi kan skapa en ny controller med rails g controller kommando.

$ bin/rails generate controller controller_name

Controllergeneratorn förväntar sig parametrar i form av generate controller ControllerName action1 action2 .

Följande skapar en hälsningskontroller med hejsåtgärd.

$ bin/rails generate controller Greetings hello

Följande utgång visas

     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

Detta genererar följande

Fil Exempel
Controller File greetings_controller.rb
Visa fil hello.html.erb
Funktionell testfil greetings_controller_test.rb
Visa Helper greetings_helper.rb
JavaScript-fil greetings.coffee

Det kommer också att lägga till rutter för varje åtgärd i routes.rb



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow