0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Scaffoldを自分なりに解説してみる

Last updated at Posted at 2020-05-03

##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を忘れずに。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?