Advertisement
Guest User

Untitled

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