LoginSignup
0
0

Rails:モデルの基本サンプルを作成

Posted at

初期学習用のメモ書きです。
モデルとダミーデータを作成→取得して画面に表示します。

モデルを作成

コマンドプロンプトで対象のプロジェクトフォルダに移動して、
以下を実行。
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」

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0