Rails でアプリを作る①

Railsを使う機会があったので、復習のためにアプリを作ろうと思います。

ちょうど資格の勉強をしているので、学習に関連するアプリが良いかなと。エビングハウス忘却曲線に基づき、復習するタイミングを管理する学習記録アプリです。

アプリの作成

RubyMineでアプリの雛形を作成します。アプリ名は「kioku」としました。

データベースの変更

データベースをPostgreSQLに変更します。rails6からは rails db:system:change が使えるようになりました。

% rails db:system:change --to=postgresql 

を実行します。

このコマンドを実行すると、Gemfileconfig/database.yml が変更されます。Gemfile が変更されたので、bundle コマンドを実行します。

% handle

デフォルトで作成された db/development.sqlite3 は必要ないので削除します。

rails db:create コマンドでデータベースを作成します。

% rails db:create
Created database 'kioku_development'
Created database 'kioku_test'

モデルの検討

モデルについて考えます。アプリの登場人物について考えます。

  • 学習記録に関する情報
  • 復習に関する情報

まず、「学習記録に関する情報」の属性について考えてみます。

  • タイトル
  • 内容

学習記録の情報モデルを作成します。モデルは rails g model [モデル名] [カラム名:型] というコマンドで作成します。

% rails g model Task name:string content:string

マイグレーションファイルは、以下のように作成されます。

[db/migrate/20220312000839_create_tasks.rb].

class CreateTasks < ActiveRecord::Migration[7.0]
  def change
    create_table :tasks do |t|
      t.string :name, null: false, default: ""
      t.string :content, null: false, default: ""

      t.timestamps
    end
  end
end

rails db:migrate を実行してDBに反映させます。

% rails db:migrate

続きは次回。