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ć
generateprzezg.
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