Ruby on Railsでマイグレーションして、ユーザ登録画面を作ってみる。
ここで登場 scaffold !!
scaffoldは、CRUD処理(作成、読み込み、更新、削除する処理)を自動で作ってくれる機能。(最高かよ...)
MVCを全て作成し、DBのmigrateファイルも作ってくれる。
おいおい、、至れり尽くせりじゃないの。
さっそく貪っていく。
実行コード:
bundle exec rails generate scaffold user name:string age:integer prof:text
これでクラスが作られる。
このコードでこんなテーブルが生成される。
テーブル名:user
カラム:name 型:文字列
カラム:age 型:数値
カラム:prof 型:テキスト
直接DBをいじるのではなく、
「DBファイルをどうするのか?」というファイルを作ってから、DBに反映させていく。
実行結果:
def change
create_table :users do |t| //:usersを do でループする。 変数 tに格納
t.string :name
t.integer :age
t.text :prof
t.timestamps
end
end
end
↓
bin/rails db:migrate
でマイグレーション実行
↓
bundle exec rails s
でWEBサーバーを開始
↓
に接続してみる
中身: index.html.erb
<p id="notice"><%= notice %></p>
<h1>Users</h1>
<table>
<thead>
<tr>
<th>Name</th>
<th>Age</th>
<th>Prof</th>
<th colspan="3"></th>
</tr>
</thead>
<tbody>
<% @users.each do |user| %>
<tr>
<td><%= user.name %></td>
<td><%= user.age %></td>
<td><%= user.prof %></td>
<td><%= link_to 'Show', user %></td>
<td><%= link_to 'Edit', edit_user_path(user) %></td>
<td><%= link_to 'Destroy', user, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
</tbody>
</table>
<br>
<%= link_to 'New User', new_user_path %>
格好よくはないが、機能としての
ユーザー登録、データ更新、データ削除が可能な機能、
そしてそのインターフェースが出来上がってしまった。
効率化最高。