【Rails】モデルを作ってみる

Ruby

動作確認環境

  • Windows10(x64)
  • rails 6.1.7
  • ruby 3.0.4p208

モデルを定義してみる

プロジェクトのルートディレクトリへ移動し、「rails g model ToDoList title:string content:string create_at:date update_at:date」のように実行してみる
→今回の場合は添付オレンジ枠の3つのファイルが生成された。

※上記のcreate_at:date update_at:dateの箇所は設定しなくても勝手に作ってくれるので不要だった

※rails g model コマンドの詳細は https://railsdoc.com/page/rails_generate_model を参照

生成された各ファイルの内容↓

class ToDoList < ApplicationRecord
end
class CreateToDoLists < ActiveRecord::Migration[6.1]				
  def change				
    create_table :to_do_lists do |t|				
      t.string :title				
      t.string :content				
      t.date :create_at				
      t.date :update_at				
				
      t.timestamps
    end
  end
end
require 'rails_helper'			
			
RSpec.describe ToDoList, type: :model do			
  pending "add some examples to (or delete) #{__FILE__}"			
end			

プロジェクトのルートディレクトリで「bundle exec rails db:migrate」を実行する
※データベースをまだ作成していない場合は先にbundle exec rails db:createが必要になるはず

→pgAdmin4で確認すると、テーブルが生成されていることが分かる。

モデルのインスタンスを保存してみる

rails c で、作成したモデルのインスタンスを生成してみる
saveメソッドを実行すると、テーブルにレコードを保存できる

(newでモデルのインスタンスを生成し、idを設定、saveメソッドでDBへ保存している)

saveメソッド実行後、テーブルをみてみるとrails c で操作したモデルが保存されていることがわかる

モデルを検索してみる

まず以下のようなレコードを準備する

rails c を起動し、findメソッドを使えば、引数で指定したプライマリーキーに合致するレコードを取得することができる。

プライマリーキーではなく、その他の属性を検索条件に指定したい場合はfind_byメソッドを使えば良い。

複数のレコードを検索する場合は、whereメソッドを用いる

タイトルとURLをコピーしました