Ruby on Rails
Szyny generują polecenia
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:
rake db:migrate
rails db:migrate
Uwaga: Aby jeszcze mniej pisać, możesz zastąpić
generate
przezg
.
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