掲示板の一覧機能の作成(アソシエーション)
どうもどハマりエンジニアです。
本日は掲示板の一覧機能を実装!
本日の行ったことをまとめるよ!
Boardモデルを作成したら、Userモデルと関連付を行う。(アソシエーション)
belongs_to :user
validates :title, presence: true, length: { maximum: 255 }
validates :body, presence: true, length: { maximum: 65_535 }
has_many :boards, dependent: :destroy
Boardsコントローラにてindexアクションを作成
class BoardsController < ApplicationController
def index
@boards = Board.all.includes(:user).order(created_at: :desc)
end
end
※includesをつけることでn+1問題が起こらないようにする。
index.html.erb
<%= render @boards %>
_board.html.erb
<div class="col-sm-12 col-lg-4 mb-3">
<div id="board-id-<%= board.id %>">
<div class="card">
<div class="card-body">
<h4 class="card-title">
<a href="#">
<%= board.title %>
下記に続く・・・
application_controller.rb
class ApplicationController < ActionController::Base
before_action :require_login
def not_authenticated
redirect_to login_url, danger: 'ログインしてください'
end
end
※sorceryのメソッドを使ってログインをしているかの確認
各コントローラではskip_before_actionを追加している。
その他にも
・時刻フォーマットをi18nを使って整形
・seeds.rbファイルを作成してBoardモデルのダミーデータを20個作り、事前にDBにインサート。ダミーデータには Faker を利用。