掲示板の一覧機能のモデル作成・編集

<大まかな流れ>

♡モデルファイルの作成

♡モデルファイルの中身の編集

♡親モデル、子モデルを結びつける

♡モデルに記載するRails側の制限を記載する

 

①モデルファイルを作成する

rails g model Board title:string body:text

でmodel下にborad.rbファイルを作成する。

stringは1~255の文字列

textは1〜4294967296の文字列の場合に用いる。

 

 

②モデルファイルの中身を作成する

class Book < ApplicationRecord

end

はすでに記載されている状態になるので、中身を作っていく。

1人のユーザーに対し複数の投稿がある1対多の関係になる。そのことを踏まえて、user.rbとboard.rbを結びつけていく。

親モデルである、user.rbにhas_many :boardsを記載する。

次に、

子モデルである、board.rbにbelongs_to :userを記載する。

 

 

③ユーザーを削除した場合、boradsの内容も消えるようにする

user.rbのhas_many :boardsの後に、dependent: :destroyを追記し、

has_many :boards, dependent: :destroyとすることで、

親モデルを消した場合、子モデルも削除する=ユーザーを削除することでboardsも全て削除できる状態にする。

 

 

Rails側にかける制限を書いていく

タイトル(title)を250文字以内

内容(body)を10000文字以内に収めるよう制限を設ける場合、

タイトルについては、

validates :title, presence: true, length: { maximum: 250 }

内容については、

validates :body, presence: true, length: { maximum: 10_000 }

とすることで、Rails側の制限をかけることができる。

制限をかける文字数が1000を超えた場合、3桁のところで「_」を挟む(10_000)のように。