Ruby on Rails
Rails genererar kommandon
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:
rake db:migrate
rails db:migrate
Obs: För ännu mindre maskinskrivning kan du ersätta
generatemedg.
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