From 935274fcafbb4905da8d5d51d212774de49cfe0c Mon Sep 17 00:00:00 2001 From: yystopf Date: Tue, 24 Mar 2026 14:36:06 +0800 Subject: [PATCH] fixed --- .../api/v1/resident_experts_controller.rb | 12 ++++++------ app/models/resident_expert_action.rb | 4 ++++ config/routes/api.rb | 1 + 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/app/controllers/api/v1/resident_experts_controller.rb b/app/controllers/api/v1/resident_experts_controller.rb index b9ff8ab04..5cf2fc6a0 100644 --- a/app/controllers/api/v1/resident_experts_controller.rb +++ b/app/controllers/api/v1/resident_experts_controller.rb @@ -1,10 +1,10 @@ class Api::V1::ResidentExpertsController < Api::V1::BaseController def index - @resident_experts = ResidentExpert.approved.includes(:user) - @resident_experts = @resident_experts.where(expert_category: params[:expert_category]) if params[:expert_category].present? - @resident_experts = @resident_experts.where("name like ? or department like ?", "%#{params[:search]}%", "%#{params[:search]}%") if params[:keyword].present? - @resident_expert_category_list = @resident_experts.group(:expert_category).count - @resident_expert_memos_rank_list = @resident_experts.order("users.memos_count desc").limit(5) + all_resident_experts = ResidentExpert.approved.includes(:user) + @resident_experts = all_resident_experts.where(expert_category: params[:expert_category]) if params[:expert_category].present? + @resident_experts = @resident_experts.where("name like ? or department like ?", "%#{params[:keyword]}%", "%#{params[:keyword]}%") if params[:keyword].present? + @resident_expert_category_list = all_resident_experts.group(:expert_category).count + @resident_expert_memos_rank_list = all_resident_experts.order("users.memos_count desc").limit(5) @resident_experts = @resident_experts.order(created_at: :desc) @resident_experts = kaminari_paginate(@resident_experts) end @@ -27,7 +27,7 @@ class Api::V1::ResidentExpertsController < Api::V1::BaseController end end - def update + def reset @resident_expert = ResidentExpert.find_by(user_id: current_user.id) @resident_expert.attributes = resident_expert_params @resident_expert.status = ResidentExpert::statuses[:pending] diff --git a/app/models/resident_expert_action.rb b/app/models/resident_expert_action.rb index a61b3598e..752c1d54e 100644 --- a/app/models/resident_expert_action.rb +++ b/app/models/resident_expert_action.rb @@ -1,3 +1,7 @@ class ResidentExpertAction < ApplicationRecord belongs_to :resident_expert + + enum action_type: {pending: 0, approved: 1, rejected: 2, todo: 3} + + validates :action_name, presence: true end diff --git a/config/routes/api.rb b/config/routes/api.rb index b3ea71736..0be6095c7 100644 --- a/config/routes/api.rb +++ b/config/routes/api.rb @@ -72,6 +72,7 @@ defaults format: :json do namespace :v1 do resources :resident_experts do collection do + post :reset get :current get :actions end