0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

草野球の出欠確認Webアプリを作ろう! part.2

Last updated at Posted at 2021-04-26

これから作っていく簡単なWebアプリの作成メモ(自分の備忘)です。
自分用なのであまり凝りすぎないように書いていきたい。

<<前回の記事

##今回やったこと

わりと思い付きで管理者権限2種類をUserモデルに追加した。

$ bin/rails g migration add_admin_to_users admin:boolean
20210426163341_add_admin_to_users.rb
class AddAdminToUsers < ActiveRecord::Migration[6.1]
  def change
    add_column :users, :admin, :boolean, default: false
  end
end
$ bin/rails g migration add_sub_admin_to_users admin:boolean
20210426163516_add_sub_admin_to_users.rb
class AddSubAdminToUsers < ActiveRecord::Migration[6.1]
  def change
    add_column :users, :sub_admin, :boolean, default: false
  end
end

今回作成している出欠確認アプリでは、スーパーアドミニストレータ(=私)がチームの代表1名にアドミニストレータ権限(admin = true)を与え登録するところをスタートと考えています。
その後チームの代表者がメンバーを登録していく際に、サブリーダーや副代表などのチームの首脳クラスのメンバーに「疑似的に」アドミニストレータ権限を付与するときに使用する目的で、2種類のフラグを用意した。
(私がアドミニストレータ権限を付与したユーザーが失踪したケースについては、運用保守が必須となってしまうため、この点はもう少し考慮の余地がある)

###スケジュールモデルの作成

出欠の管理をするアプリなので、スケジュールを扱うモデルの作成をする。

$ bin/rails g model Schedules title:string date_of:date start_time:time end_time:time meeting_time:time

※モデルのジェネレートの際、変数の型を指定するのに以下のWeb記事を参考にした。
Rails migrationで使うデータ型を考える

マイグレーションの前に、生成されたマイグレーションファイルを編集する。
(これから使いそうな変数を考えつつ、長い1行のコマンドを作るのはしんどいので、とりあえず作ってからマイグレーションする前に整えることにした)
以下のWeb記事を参考にした。
NOT NULLなどの制約の設定

20210426172035_create_schedules.rb
class CreateSchedules < ActiveRecord::Migration[6.1]
  def change
    create_table :schedules do |t|
      t.string :title, null: false, default: ''
      
      t.date :date_of
      t.time :start_time
      t.time :end_time
      t.time :meeting_time
      
      t.string :participant_id, null: false, default: ''
      t.string :absentee_id, null: false, default: ''
      t.string :holder_id, null: false, default: ''

      t.timestamps
    end
  end
end

本当は日付や時間にも制約やデフォルト値を用意したかったが、日付単体や時間単体のデフォルト設定について知識不足なので、下手に設定するよりも後追いでマイグレーションを追加したほうがよくなるような気がして断念した。

$ bin/rails db:migrate

マイグレーションを実行して、平日だし今回はここまで。
次回の記事>>

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?