rails generateコマンドで忘れがちな事「rails g -h」
rails generate
コマンドで、よく使うけど忘れてしまいがちな以下をメモ。
- generateが可能な事・オプション。Rails標準でgenerateできるものは大体理解しているが、追加した
gem
のgenerate方法 - 生成されるものを制限するskipオプションについて
- モデルを作成するgenerateで指定する型
limit
の長さでRDBの型が異なる場合の長さの指定
generate
Rails標準に加え、generateを提供しているgemを調べるとき。
モデルを生成した後からrspec
や factory_girl
のgemを追加して、対応するモデルのspec・factory_girlのファイルをそれぞれ追加生成する場合に、いちいち自分でいちから生成するのでなく generate
で生成する場合の調べ方。
以下、rspec
、factory_girl
をインストールして、rails g -h
した結果。
$ ./bin/rails g -h -- 中略 -- Rails: assets channel controller generator helper integration_test jbuilder job mailer migration model resource scaffold scaffold_controller task FactoryGirl: factory_girl:model Js: js:assets Rspec: rspec:controller rspec:feature rspec:helper rspec:install rspec:integration rspec:job rspec:mailer rspec:model rspec:observer rspec:request rspec:scaffold rspec:view TestUnit: test_unit:controller test_unit:generator test_unit:helper test_unit:integration test_unit:job test_unit:mailer test_unit:model test_unit:plugin test_unit:scaffold
例えば、Userモデルのfactory_girlを生成する場合
./bin/rails g factory_girl:model user
さらにgenerate ごとの詳細を知りたければ、そのヘルプを見ることが可能。
$ ./bin/rails g scaffold -h
skip
scaffoldで assets
や helper
を生成したくないとき。
$ ./bin/rails g scaffold product name:string url:string --skip-assets --skip-helper invoke active_record create db/migrate/20170202010817_create_products.rb create app/models/product.rb invoke resource_route route resources :products invoke scaffold_controller create app/controllers/products_controller.rb invoke erb create app/views/products create app/views/products/index.html.erb create app/views/products/edit.html.erb create app/views/products/show.html.erb create app/views/products/new.html.erb create app/views/products/_form.html.erb invoke jbuilder create app/views/products/index.json.jbuilder create app/views/products/show.json.jbuilder create app/views/products/_product.json.jbuilder
利用可能な型
rails generate model NAME [field[:type][:index] field[:type][:index]] [options]
等で、カラムのtypeを指定する場合の利用可能な型
$ ./bin/rails g model -h - 中略 - You can use the following types: integer primary_key decimal float boolean binary string text date time datetime
limitの長さ
integerとtextは limit
オプションの長さによってRDBの型が変わる
関連するおすすめ本
- 作者: 掌田津耶乃
- 出版社/メーカー: 秀和システム
- 発売日: 2016/12/17
- メディア: 単行本
- この商品を含むブログを見る