コンテンツにスキップ

Ruby on Railsで初めてアプリを作ってみる #3 -scaffoldジェネレータ-

railsには scaffold という単純なリソースを一気に生成するコマンドが存在する。 今回はこのコマンドを使ってみる。

Usersリソースの生成

今回は scaffold コマンドを使ってリソースを生成する。 ここでは以下の要素をもつUsersリソースを生成する。

  • id int
  • name string
  • email string

rails generate スクリプトに scaffold コマンドを指定し、リソースの単数系と要素の情報を渡す

$ rails generate scaffold User name:string email:string

id要素はRailsが主キーとしてデフォルトで設定する

DBにusersのセットアップを行う

rake コマンドを使ってDBをmigrate(更新)する。

$ bundle exec rake db:migrate
== 20141111170736 CreateUsers: migrating ======================================
-- create_table(:users)
   -> 0.0012s
== 20141111170736 CreateUsers: migrated (0.0014s) =============================

出力から users テーブルが作られたことがわかる

ブラウザで確認

rails server コマンドの短縮版である rails s を使って3000番portにアプリを立ち上げる

$ rails s

http://xx.xxx.xxx.xxx:3000

にブラウザでアクセスすると #1 railsのセットアップ で見たデフォルトのRailsページが表示される

次に以下のエンドポイントにアクセスしてみる

http://xx.xxx.xxx.xxx:3000/users

すると既にUser一覧ページができあがっているのがわかる。この他に

  • 新規ユーザーを作成するページ
  • 特定のidのユーザー情報を表示するページ
  • 特定のidのユーザー情報を編集するページ

が作られている。

Micropostsリソースの生成

Usersリソースと同様に scaffold コマンドと rakemigrate タスクで生成する

$ rails generate scaffold Micropost content:string user_id:integer
$ bundle exec rake db:migrate
== 20141112174234 CreateMicroposts: migrating =================================
-- create_table(:microposts)
   -> 0.0029s
== 20141112174234 CreateMicroposts: migrated (0.0031s) ========================

config/routes.rb にmicropostsリソースの設定が追加された

参照

Ruby on Rails チュートリアル