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 CommandsController < ApplicationController
  2.   # コマンド操作で表示するメッセージ
  3.   COMMAND_NEW_SUCCESS = "コマンドの追加に成功しました。"
  4.   COMMAND_NEW_FAILURE = "コマンドの追加に失敗しました。"
  5.   COMMAND_EDIT_SUCCESS = "コマンドの編集に成功しました。"
  6.   COMMAND_EDIT_FAILURE = "コマンドの編集に失敗しました。"
  7.   COMMAND_DESTROY_SUCCESS = "コマンドの削除に成功しました。"
  8.  
  9.   # commandモデルのfieldで使用する定数。
  10.   COMMAND_FIELD_NAME_SIZE = 25
  11.   COMMAND_FIELD_NAME_MAX_LENGTH = 20
  12.   COMMAND_FIELD_CONTENTS_SIZE = 105
  13.   COMMAND_FIELD_CONTENTS_MAX_LENGTH = 100
  14.   COMMAND_FIELD_DESCRIPTION_SIZE = 205
  15.   COMMAND_FIELD_DESCRIPTION_MAX_LENGTH = 200
  16.  
  17.   before_action :set_command, only: [:edit, :update, :destroy]
  18.  
  19.   # コマンド追加画面
  20.   def new
  21.     # コマンドを追加する際に、カテゴリidが必要なので、flashに設定する
  22.     flash[:category_id] = params[:category_id]
  23.     @command = Command.new
  24.   end
  25.  
  26.   # コマンド追加
  27.   def create
  28.     # コマンドをカテゴリに関連づけるために取得する。
  29.     category = Category.find(params[:category_id])
  30.     # createメソッドで追加すると検証メッセージが表示されないため、newメソッドを使用する。
  31.     @command = category.command.new(command_params)
  32.     if @command.save
  33.         command_operation_log(COMMAND_NEW_SUCCESS, params[:command][:name], params[:command][:contents], params[:command][:description])
  34.         redirect_to command_management_show_url, notice: COMMAND_NEW_SUCCESS
  35.     else
  36.         command_operation_log(COMMAND_NEW_FAILURE, params[:command][:name], params[:command][:contents], params[:command][:description])
  37.         # コマンドを再追加するために必要なコテゴリを再セットする。
  38.         flash.now[:category_id] = params[:category_id]
  39.         render :new
  40.     end
  41.   end
  42.  
  43.   # コマンド更新
  44.   def update
  45.     if @command.update(command_params)
  46.         command_operation_log(COMMAND_EDIT_SUCCESS, params[:command][:name], params[:command][:contents], params[:command][:description])
  47.         redirect_to command_management_show_url, notice: COMMAND_EDIT_SUCCESS
  48.     else
  49.         command_operation_log(COMMAND_EDIT_FAILURE, params[:command][:name], params[:command][:contents], params[:command][:description])
  50.         render :edit
  51.     end
  52.   end
  53.  
  54.   # コマンド削除
  55.   def destroy
  56.     @command.destroy
  57.     command_operation_log(COMMAND_DESTROY_SUCCESS, @command.name, @command.contents, @command.description)
  58.     redirect_to command_management_show_url, notice: COMMAND_DESTROY_SUCCESS
  59.   end
  60.  
  61.   private
  62.     # Use callbacks to share common setup or constraints between actions.
  63.     def set_command
  64.       @command = Command.find(params[:id])
  65.     end
  66.  
  67.     # Never trust parameters from the scary internet, only allow the white list through.
  68.     def command_params
  69.       params.require(:command).permit(:name, :contents, :description)
  70.     end
  71.  
  72.     # コマンド関連の操作でログを残すためのメソッド
  73.     def command_operation_log(log_message, command_name, command_contents, command_description)
  74.       logger.debug("#{log_message} category_id:#{params[:category_id]} name:#{command_name} contents:#{command_contents} description:#{command_description}")
  75.     end
  76. 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