初期学習用のメモ書きです。
モデルとダミーデータを作成→取得して画面に表示します。
モデルを作成
コマンドプロンプトで対象のプロジェクトフォルダに移動して、
以下を実行。
nameとageというカラムを持った、userテーブルを作成
> rails generate model user name:text age:integer
作成されるファイル
モデル名の複数形を使うルールのため、userでなくusersになっているものもある
ファイル | 概要 |
---|---|
app/models/user.rb | モデルのソースコード |
db/migrate/xxx_create_users.rb | DBの更新に関する処理が書かれたファイル 「xxx」は作成された日時を表す数字 |
test/models/user_test.rb | テスト用ソースコード |
test/fixtures/users.yml | テストに関する情報を書いたファイル |
マイグレーションの実行
作成したモデル情報をDBに反映する。
コマンドプロンプトで対象のアプリケーション(プロジェクト)フォルダに移動して、以下を実行。
> rails db:migrate
ダミーデータ作成
テスト用の初期データ登録。
db/seed.rbの最後に以下を追記
seed.rb
User.create(name:'Tanaka', age:10)
User.create(name:'Satoh', age:20)
User.create(name:'Suzuki', age:30)
シードの実行
seed.rbの内容をDBへ反映させる。
コマンドプロンプトで対象のアプリケーション(プロジェクト)フォルダに移動して、以下を実行。
> rails db:seed
コントローラでDBデータを取得
Userのデータをすべて取得する。
.allで取得されるのは、ActiveRecord::Relationというオブジェクトになる。
test_controller.rb
class TestController < ApplicationController
def index
@data = User.all
end
end
DBデータを出力するテンプレートを作成
index.html.erb
<table>
<tr>
<th>id</th>
<th>name</th>
<th>age</th>
<th>timestamps</th>
</tr>
<% @data.eaach do |obj| %>
<tr>
<td><%= obj.id %></td>
<td><%= obj.name %></td>
<td><%= obj.age %></td>
</tr>
<% end %>
</table>
Railsによって自動追加される項目がある
→「id」「timestamps」