EnsekiTT Blog

EnsekiTTが書くブログです。

Ruby on RailsのScaffoldで何が出来たのか確認する話

つまりなにしたの?

Railsのアプリを作ったらScaffoldで簡単な骨子を作って肉付けしていくらしいので、
最初に作ったら何ができるのか確認した。
f:id:ensekitt:20180501130711j:plain

まずは実行する

emailとnameのデータを持つuserというモデルを作成する。

$ rails generate scaffold user email:string name:string
Running via Spring preloader in process 4447
      invoke  active_record
      create    db/migrate/20180427194519_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
      create      test/system/users_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
      create      app/views/users/_user.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

作成されたもの

  • resource_route

resources :usersがconfig/routes.rbに追加されている

  • active_record

マイグレーション用のコードとモデルアクセスのためのコード
yyyymmddHHMMSS_create_users.rbができる。

class CreateUsers < ActiveRecord::Migration[5.2]
  def change
    create_table :users do |t|
      t.string :email
      t.string :name

      t.timestamps
    end
  end
end

app/models/user.rbもつくられているが、ApplicationRecordを継承しただけだった。

  • erb

ビューのERBテンプレートエンジン向けコード
各種ページの生成に必要なerbがつくられていた。

JSONレスポンスのテンプレートエンジン向けコード
個別のユーザ情報を取得するjsonとユーザリストを取得するjsonがつくられていた。

  • scaffold_controller

コントローラ

  • helper

ヘルパー用のコード。
コントローラがめちゃくちゃ長くなった時に使うようなイメージだけど特に中身はなかった。

  • test_unit

単体テスト用のコード。既に7つのテストが走っていた。

  • assets: coffee

coffeeスクリプト。中身は空

  • assets: scss

SCSS形式のスタイルシート。ScaffoldsとUsers向けのスタイルシートが入っていた。
Scaffold側にはスタイルが書いてあるけどUsers側には特に書いてなかった。

db:migrateしてアクセスしてみる

$ rails db:migrate
$ rails server

ブラウザから立ち上がったRailsのアドレスにアクセスする。
先日の開発環境を使っていたら192.168.33.10:3000
ensekitt.hatenablog.com

f:id:ensekitt:20180501122728p:plain
新しいUserを作る
f:id:ensekitt:20180501123000p:plain
作れた。
f:id:ensekitt:20180501123009p:plain
/usersを見ると増えていることがわかる
f:id:ensekitt:20180501123040p:plain

完全に自分用のメモだ…

クリエイティブ・コモンズ・ライセンス
この 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。