掲示板の一覧機能のモデル作成・編集
<大まかな流れ>
♡モデルファイルの作成
♡モデルファイルの中身の編集
♡親モデル、子モデルを結びつける
♡モデルに記載する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
)のように。