サーチ…


前書き

使用法: rails generate GENERATOR_NAME [args] [options]

rails generateを使用して、使用可能なジェネレータをリストします。エイリアス: rails g

パラメーター

パラメータ詳細
-h / --help ジェネレータコマンドに関するヘルプを表示する
-p / --pretend Pretend Mode:ジェネレータを実行しますが、ファイルを作成または変更しません。
field:type 'field-name'は作成する列の名前で、 'type'は列のデータ型です。 field:type 'type'に指定できる値は、備考欄にあります。

備考

field:type 'type'に指定できる値は次のとおりです。

データ・タイプ説明
:string 小さなテキストの場合(通常は文字制限が255です)
:text 段落のような長いテキストの場合
:binary 画像、オーディオ、ビデオを含むデータの保存
:boolean 真偽値の格納
:date 日付のみ
:time 時間だけ
:datetime 日時
:float 精度のないフロートの保存
:decimal 浮動小数点数を精度で格納する
:integer 整数の格納

Railsはモデルを生成する

モデルに適切なdbマイグレーションとボイラープレート・テスト・ファイルを自動的に作成するActiveRecordモデルを生成するには、このコマンドを入力します

rails generate model NAME column_name:column_type

'NAME'はモデルの名前です。 'field'はDBテーブルの列の名前で、 'type'は列の型です(例: name:stringまたはbody:text )。サポートされている列の種類の一覧については、「備考」を参照してください。

外部キーを設定するには、 belongs_to:model_name追加します。

だから、 usernameemail持ち、 Schoolに属しているUserモデルをセットアップしたければ、次のように入力します

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

rails gは、 rails generateための略語です。これにより同じ結果が得られます

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

Railsによる移行の生成

次のコマンドを使用して、端末からレール移行ファイルを生成できます。

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

このコマンドでサポートされているすべてのオプションのリストについては、 rails generate migrationように引数なしでコマンドを実行できます。

たとえば、 first_nameフィールドとlast_nameフィールドをusersテーブルに追加する場合は、次のようにします。

rails generate migration AddNamesToUsers last_name:string first_name:string

Railsは次の移行ファイルを作成します。

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

次に、端末で次のコマンドを実行して、保留中の移行をデータベースに適用します。

5.0
rake db:migrate
5.0
rails db:migrate

注:入力をさらに少なくするために、 generateg置き換えることができます。

レールは足場を生成する

免責事項:非常に従来型のCRUDアプリケーション/テスト用でない限り、足場は推奨されません。これはあなたのWebアプリケーションで不要な多くのファイル(ビュー/モデル/コントローラ)を生成し、頭痛(悪い:()を引き起こす可能性があります。

モデル、コントローラ、ビュー、アセット、およびテストを含む新しいオブジェクト用の完全な作業用足場を生成するには、 rails g scaffoldコマンドを使用し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

次に、 rake db:migrateを実行してデータベーステーブルを設定します。

次に、 http:// localhost:3000 / widgetsにアクセスすると、完全に機能的なCRUDスカフォールドが表示されます。

レール生成コントローラ

rails g controllerコマンドで新しいコントローラを作成することができます。

$ bin/rails generate controller controller_name

コントローラージェネレーターは、 generate controller ControllerName action1 action2generate controller ControllerName action1 action2形式でパラメーターを予期しています。

次の例は、helloのアクションを持つGreetingsコントローラを作成します。

$ bin/rails generate controller Greetings hello

次の出力が表示されます

     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

これにより以下が生成されます

ファイル
コントローラファイル greetings_controller.rb
ファイルを閲覧する hello.html.erb
機能テストファイル greetings_controller_test.rb
ビューヘルパー greetings_helper.rb
JavaScriptファイル greetings.coffee

また、 routes.rb各アクションのルートも追加しroutes.rb



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow