DEV

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