edo1z blog

プログラミングなどに関するブログです

railsのscaffoldを使ってみる

scaffoldの使い方

引用:Toyアプリケーション

Railsのscaffoldは、rails generateスクリプトにscaffoldコマンドを渡すことで生成されます。scaffoldコマンドの引数には、リソース名を単数形にしたもの (この場合はUser) を使用し、必要に応じてデータモデルの属性をオプションとしてパラメータに追加します3。
$ rails generate scaffold User name:string email:string
      invoke  active_record
      create    db/migrate/20160523032732_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

rails generate scaffoldでは、DBまでは更新されないので、マイグレーションが必要らしい。マイグレーションの履歴ファイルはscaffold時点で勝手につくってくれる。db/migrate/20160523032732_create_users.rb。下記のbundle execは不要な環境もあり得る。

$ bundle exec rake db:migrate

cloud9を使っているのですが、DBの設定をした覚えがないのですが、マイグレーションが成功した。sqlite3を使ってるからだった。

Herokuでマイグレーション

Herokuにpush

$ git push heroku

Herokuでマイグレーション

$ heroku run rake db:migrate