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
generate
medg
.
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