SHARE
TWEET

Untitled

a guest Apr 20th, 2019 82 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. class CategoriesController < ApplicationController
  2.   # カテゴリ操作で表示するメッセージ
  3.   CATEGORY_NEW_SUCCESS = "カテゴリの追加に成功しました。"
  4.   CATEGORY_NEW_FAILURE = "カテゴリの追加に失敗しました。"
  5.   CATEGORY_EDIT_SUCCESS = "カテゴリの編集に成功しました。"
  6.   CATEGORY_EDIT_FAILURE = "カテゴリの編集に失敗しました。"
  7.   CATEGORY_DESTROY_SUCCESS = "カテゴリの削除に成功しました。"
  8.  
  9.   # カテゴリモデルのfieldで使用する定数
  10.   CATEGORY_FIELD_NAME_SIZE = 25
  11.   CATEGORY_FIELD_NAME_MAX_LENGTH = 20
  12.  
  13.   before_action :set_category, only: [:edit, :update, :destroy]
  14.  
  15.   # カテゴリ追加画面
  16.   def new
  17.     @category = Category.new
  18.   end
  19.  
  20.   # カテゴリ追加
  21.   def create
  22.     # カテゴリをユーザーに関連づけるために取得する。
  23.     user = User.find(session[:user_id])
  24.     # createメソッドで追加すると検証メッセージが表示されないため、newメソッドを使用する。
  25.     @category = user.category.new(category_params)
  26.     if @category.save(category_params)
  27.       category_operation_log(CATEGORY_NEW_SUCCESS, params[:category][:name])
  28.       redirect_to command_management_show_url, notice: CATEGORY_NEW_SUCCESS
  29.     else
  30.       category_operation_log(CATEGORY_NEW_FAILURE, params[:category][:name])
  31.       render :new
  32.     end
  33.   end
  34.  
  35.   # カテゴリ更新
  36.   def update
  37.     if @category.update(category_params)
  38.         category_operation_log(CATEGORY_EDIT_SUCCESS, params[:category][:name])
  39.         redirect_to command_management_show_url, notice: CATEGORY_EDIT_SUCCESS
  40.     else
  41.         category_operation_log(CATEGORY_EDIT_FAILURE, params[:category][:name])
  42.         render :edit
  43.     end
  44.   end
  45.  
  46.   # カテゴリ削除
  47.   def destroy
  48.     @category.destroy
  49.     category_operation_log(CATEGORY_DESTROY_SUCCESS, @category.name)
  50.     redirect_to command_management_show_url, notice: CATEGORY_DESTROY_SUCCESS
  51.   end
  52.  
  53.   private
  54.  
  55.     # Use callbacks to share common setup or constraints between actions.
  56.     def set_category
  57.       @category = Category.find(params[:id])
  58.     end
  59.  
  60.     # Never trust parameters from the scary internet,
  61.     # only allow the white list through.
  62.     def category_params
  63.       params.require(:category).permit(:name)
  64.     end
  65.  
  66.     # カテゴリ関連の操作でログを残すためのメソッド
  67.     def category_operation_log(log_message, category_name)
  68.       logger.debug("#{log_message} name:#{category_name}")
  69.     end
  70. end
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top