⭐️導入リスト⭐️
◆掲示板のCRUD機能とユーザーのCRUD機能を追加する。
掲示板一覧画面にて、「ID」、「タイトル」、「作成者」、「作成日」、「詳細・編集・削除ボタン」の項目が表示されるようにする。
(タイトル部分をクリックすると詳細画面に遷移する機能も追加する。)
掲示板詳細画面にて、「編集・削除ボタン」が表示されるようにする。
ユーザー一覧画面にて、「ID」、「姓名」、「権限(一般 or 管理者)」、「詳細・編集・削除ボタン」の項目が表示されるようにする。
ユーザー詳細画面にて、「ID」、「姓名」、「権限(一般 or 管理者)」、「作成日時」の項目が表示されるようにする。
一覧、詳細どちらの画面でも削除ボタンをクリックすると確認アラートが表示されるようにする。
⭐️導入の流れ(掲示板一覧):
admin_boards_controller(管理者用掲示板全体)
class Admin::BoardsController < Admin::BaseController
before_action :set_board(set_〇〇:コントローラ内に同じ記述内容のアクションがある場合に記載する。), only: %i[edit show update destroy]#特定アクションのみbefore_actionをつける
#参考文献:<https://pikawaka.com/rails/before_action>
#一覧画面の表示アクション
def index
@q = Board.ransack(params[:q])
@boards = @q.result(distinct: true).includes(:user).order(created_at: :desc).page(params[:page])
end
#一覧表示画面アクション
def show; end #(set/boatdのアクション)
def edit; end #(set/boatdのアクション)
def update
if @board.update(board_params)
redirect_to admin_board_path(@board), success: t('defaults.message.updated', item: Board.model_name.human)
else
flash.now[:danger] = t('defaults.message.not_updated', item: Board.model_name.human)
render :edit
end
end
def destroy!
@board.destroy
redirect_to admin_boards_path, success: t('defaults.message.deleted', item: Board.model_name.human)
end
#privateメソッド
private
def set_board
@board = Board.find(params[:id])
end
def board_params
params.require(:board).permit(:title, :body, :board_image, :board_image_cache)
end
end
admin/_search_form.html.erb

admin/index.html.erb

admin/_board.html.erb

admin/edit.html.erb

admin/show.html.erb

⭐️導入の流れ(ユーザー一覧):
users/_search_form.html.erb

users/index*.html.erb*

users/_user*.html.erb*

users/edit.html.erb

users/show.html.erb
