Szukaj…


Wprowadzenie

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

Użyj rails generate aby wyświetlić listę dostępnych generatorów. Alias: rails g .

Parametry

Parametr Detale
-h / --help Uzyskaj pomoc dotyczącą dowolnego polecenia generatora
-p / --pretend Tryb udawania: Uruchom generator, ale nie utworzy ani nie zmieni żadnych plików
field:type „nazwa pola” to nazwa kolumny, która ma zostać utworzona, a „typ” to typ danych kolumny. Możliwe wartości „type” w field:type podano w sekcji Uwagi.

Uwagi

Możliwe wartości dla „type” w field:type to:

Typ danych Opis
:string W przypadku mniejszych fragmentów tekstu (zwykle ma limit 255 znaków)
:text W przypadku dłuższych fragmentów tekstu, takich jak akapit
:binary Przechowywanie danych, w tym obrazów, plików audio i filmów
:boolean Przechowywanie prawdziwych lub fałszywych wartości
:date Tylko data
:time Tylko czas
:datetime Data i godzina
:float Przechowywanie pływaków bez precyzji
:decimal Dokładne przechowywanie pływaków
:integer Przechowywanie liczb całkowitych

Szyny generują model

Aby wygenerować model ActiveRecord który automatycznie tworzy poprawne migracje ActiveRecord danych i pliki testowe dla Twojego modelu, wprowadź to polecenie

rails generate model NAME column_name:column_type

„NAME” to nazwa modelu. „pole” to nazwa kolumny w tabeli DB, a „typ” to typ kolumny (np. name:string lub body:text ). Sprawdź w sekcji Uwagi listę obsługiwanych typów kolumn.

Aby skonfigurować klucze obce, dodaj belongs_to:model_name .

Powiedzmy, że chcesz skonfigurować model User który ma username , email - email i należy do School , wpisz następujące informacje

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

rails g są skrótem od rails generate . Dałoby to ten sam wynik

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

Szyny generują migrację

Możesz wygenerować plik migracji szyn z terminala za pomocą następującego polecenia:

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

Aby wyświetlić listę wszystkich opcji obsługiwanych przez komendę, możesz uruchomić komendę bez żadnych argumentów, ponieważ rails generate migration w rails generate migration .

Na przykład, jeśli chcesz dodać pola first_name i last_name do tabeli users , możesz:

rails generate migration AddNamesToUsers last_name:string first_name:string

Railsy utworzą następujący plik migracji:

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

Teraz zastosuj oczekujące migracje do bazy danych, uruchamiając w terminalu:

5.0
rake db:migrate
5.0
rails db:migrate

Uwaga: Aby jeszcze mniej pisać, możesz zastąpić generate przez g .

Szyny generują rusztowanie

ZASTRZEŻENIE : Rusztowanie nie jest zalecane, chyba że jest to bardzo konwencjonalne aplikacje / testy CRUD. Może to generować wiele plików (widoków / modeli / kontrolerów), które nie są potrzebne w Twojej aplikacji internetowej, powodując w ten sposób bóle głowy (złe :().

Aby wygenerować w pełni działające rusztowanie dla nowego obiektu, w tym modelu, kontrolera, widoków, zasobów i testów, użyj polecenia 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

Następnie możesz uruchomić rake db:migrate aby skonfigurować tabelę bazy danych.

Następnie możesz odwiedzić http: // localhost: 3000 / widgets, a zobaczysz w pełni funkcjonalne rusztowanie CRUD.

Rails Generate Controller

możemy stworzyć nowy kontroler za rails g controller komendy rails g controller .

$ bin/rails generate controller controller_name

Generator kontrolera oczekuje parametrów w postaci generate controller ControllerName action1 action2 .

Poniżej tworzony jest kontroler Pozdrowienia z akcją witania.

$ bin/rails generate controller Greetings hello

Zobaczysz następujące dane wyjściowe

     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

To generuje następujące

Plik Przykład
Plik kontrolera greetings_controller.rb
Zobaczyć plik hello.html.erb
Plik testu funkcjonalnego greetings_controller_test.rb
Zobacz pomocnika greetings_helper.rb
Plik JavaScript greetings.coffee

Dodane zostaną również trasy dla każdej akcji w routes.rb



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow