##Scaffoldとは
ざっくり言うと、Railsに備わっているアプリケーションの雛形を作成することができる機能のこと。読み方はスキャフォールド。日本語に訳すと(建築現場などの)足場。
・create(新規作成)
・read(読み出し)
・update(更新)
・destroy(削除)
以上の4つのWebアプリケーションの基本となる機能を追加してくれます。頭文字をとってCRUDとも呼ばれているみたいです。
rails generate scaffold モデル名 カラム名:データ型
のように使います。
$ rails generate scaffold User name:string email:string
invoke active_record
create db/migrate/20160515001017_create_users.rb
create app/models/user.rb
invoke test_unit
create test/models/user_test.rb
create test/fixtures/users.yml
invoke resource_route
route resources :users
invoke scaffold_controller
create app/controllers/users_controller.rb
invoke erb
create app/views/users
create app/views/users/index.html.erb
create app/views/users/edit.html.erb
create app/views/users/show.html.erb
create app/views/users/new.html.erb
create app/views/users/_form.html.erb
invoke test_unit
create test/controllers/users_controller_test.rb
invoke helper
create app/helpers/users_helper.rb
invoke test_unit
invoke jbuilder
create app/views/users/index.json.jbuilder
create app/views/users/show.json.jbuilder
invoke assets
invoke coffee
create app/assets/javascripts/users.coffee
invoke scss
create app/assets/stylesheets/users.scss
invoke scss
create app/assets/stylesheets/scaffolds.scss
追加されるディレクトリ名や文字などはscaffoldで指定したモデル名の複数形になります。
##作成されたファイル
上のコード例で追加されたファイルを見ていきます。
・モデル、データベース
create db/migrate/20160515001017_create_users.rb
create app/models/user.rb
モデルとマイグレーションファイルを作成しています。モデルはデータベースとのやりとりを取り扱う機能を実装します。
・テスト
create test/models/user_test.rb
create test/fixtures/users.yml
create test/controllers/users_controller_test.rb
上から順に
・モデルのテスト環境用のテスト処理ファイル
・test用サンプルデータ
・コントローラのtest環境用のテスト処理ファイル
・コントローラ
create app/controllers/users_controller.rb
ブラウザとview、モデルの仲介役ことコントローラの作成。
・ビュー
create app/views/users
create app/views/users/index.html.erb
create app/views/users/edit.html.erb
create app/views/users/show.html.erb
create app/views/users/new.html.erb
create app/views/users/_form.html.erb
「_form.html.erb」ファイルは他のビューから読み込まれるもので、複数のビューファイルで使われている部分をまとめています。
・ヘルパー
create app/helpers/users_helper.rb
ヘルパーとはViewをよりシンプルに書くためのモジュール。Viewでの共通する処理をメソッドとして定義します。繰り返し記述するような処理を簡略化でき、メンテナンス性も向上します。
・SCSS
create app/assets/stylesheets/scaffolds.scss
表示画面のスタイルを設定するCSSがまとまっているファイル。
・その他
create app/views/users/index.json.jbuilder
create app/views/users/show.json.jbuilder
create app/views/users/_user.json.jbuilder
create app/assets/javascripts/users.coffee
create app/assets/stylesheets/users.scss
Javascript系のファイル。これらのファイル「は基本的に変更することはあまりないかもしれないとのこと。
##最後に
今回はscaffoldについての説明とどんなファイルが生成されるのかを見ました。rails db:migrateを忘れずに。