アプリケーションに必要なファイルをまとめて生成
説明
アプリケーションの基本的な機能の一覧(index)、詳細(show)、新規作成(new/create)、編集(edit/update)、削除(destroy)するために必要なコントローラ、モデル、ビューをまとめて生成
使い方
$ rails generate scaffold 名前 [カラム名:型]
オプション
オプション | 説明 |
---|---|
-r, -ruby=PATH | rubyバイナリのパス |
-b, –builder-BUILDER | builderのパスを指定 |
-m, -template=TAMPLATE | テンプレートのパス |
–skip-gemfile | Grmfileを作成しない |
–skip-bundle | bundle installしない |
-G, –skip-git | .gitignore, .gitkeepを組み込まない |
-O, –skip-active-recode | active recordを組み込まない |
-S, –skip-sprockets | sprocketsファイルをスキップ |
-d, –database=DATABASE | データベースの種類 |
-j, –javascript=JAVASCRIPT | 組み込むJavaScriptライブラリーを指定。デフォルトは、jquery |
-J, –skip-javascript | javaScriptを組み込まない |
–dev | github リポジトリ上の自分のコードから作成 |
–edge | github リポジトリ上の最新のコードから作成 |
-T, –skip-test-unit | test::unitを組み込まない |
–old-style-hash | 古いハッシュ形式(:foo => ‘bar’)を有効にする(Ruby1.9以上) |
-f, –force | ファイルが存在する場合に上書きする |
-p, –pretend | ドライラン |
-q, –quiet | 進捗情報を表示しない |
-s, –skip | 既に存在するファイルについてはスキップ |
-h, –help | ヘルプ |
-v, –version | バージョンを表示 |
カラムの型
データ方 | 説明 |
---|---|
string | 文字列 |
text | 長い文字列 |
integer | 整数 |
float | 浮動小数 |
decimal | 精度の高い小数 |
datetime | 日時 |
timestamp | より細かい日時 |
time | 時間 |
date | 日付 |
binary | バイナリデータ |
boolean | Boolean型 |
生成されるファイル
ファイル | 説明 |
---|---|
db/migrate/YYYYMMDDHHMMSS_create_XXXs.rb | マイグレーションファイル |
app/assets/javascripts/XXXs.js.coffee | モデル固有のCoffeeScript |
app/assets/stylesheets/XXXs.css.scss | モデル固有のSCSSスタイルシート |
app/assets/stylesheets/scaffolds.css.scss | Scaffold共通のSCSSスタイルシート |
app/controllers/XXXs_controller.rb | コントローラファイル |
app/views/XXXs/index.html.erb | すべてのリストを表示 |
app/views/XXXs/edit.html.erb | 編集ファイル |
app/views/XXXs/show.html.erb | 詳細ページ |
app/views/XXXs/new.html.erb | 新規ページ |
app/views/XXXs/_form.html.erb | フォーム用ページ |
app/models/XXX.rb | モデルファイル |
app/helpers/XXXs_helper.rb | ヘルパー |
test/functional/XXXs_controller_test.rb | コントローラ用テストファイル |
test/unit/XXX_test.rb | モデル用テストファイル |
test/fixtures/XXXs.yml | fixtureファイル |
test/unit/helpers/XXXs_helper_test.rb | テスト用 |
public/stylesheets/scaffold.css | デフォルトのスタイルシート |
例
$ rails generate scaffold page name:string title:string
invoke active_record
create db/migrate/YYYYMMDDHHMMSS_create_pages.rb
create app/models/page.rb
invoke test_unit
create test/unit/page_test.rb
create test/fixtures/pages.yml
route resources :pages
invoke scaffold_controller
create app/controllers/pages_controller.rb
invoke erb
create app/views/pages
create app/views/pages/index.html.erb
create app/views/pages/edit.html.erb
create app/views/pages/show.html.erb
create app/views/pages/new.html.erb
create app/views/pages/_form.html.erb
invoke test_unit
create test/functional/pages_controller_test.rb
invoke helper
create app/helpers/pages_helper.rb
invoke test_unit
create test/unit/helpers/pages_helper_test.rb
invoke assets
invoke coffee
create app/assets/javascripts/pages.js.coffee
invoke scss
create app/assets/stylesheets/pages.css.scss
invoke scss
create app/assets/stylesheets/scaffolds.css.scss