Advertisement
Guest User

Untitled

a guest
Apr 20th, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.27 KB | None | 0 0
  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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement