Class: SimpleAdmin::ResourcesController
- Inherits:
-
BaseController
- Object
- ActionController::API
- BaseController
- SimpleAdmin::ResourcesController
- Defined in:
- app/controllers/simple_admin/resources_controller.rb
Instance Method Summary collapse
Instance Method Details
#create ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 |
# File 'app/controllers/simple_admin/resources_controller.rb', line 50 def create model_klass = params[:model_klass_name].constantize resource = model_klass.new(resource_params) if resource.save render json: resource else render json: resource.errors end end |
#destroy ⇒ Object
73 74 75 76 77 78 |
# File 'app/controllers/simple_admin/resources_controller.rb', line 73 def destroy model_klass = params[:model_klass_name].constantize resource = model_klass.find(params[:id]) resource.destroy end |
#index ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'app/controllers/simple_admin/resources_controller.rb', line 3 def index model_klass = params[:model_klass_name].constantize model_fields = params[:model_fields] per_page = params[:per_page].to_i page = params[:page].to_i if params[:page].present? total = model_klass.count resources = model_klass.order(id: :asc).limit(per_page) if params[:query].present? search_result = search(params[:query], model_klass, params[:model_attributes]) resources = search_result[:resources] total = search_result[:total] end resources = resources.offset((per_page * page) - per_page) if page.present? resources = resources.order(params[:sort][:column_name] => params[:sort][:order]) if params[:sort].present? resources = resources.map do |resource| _resource = {} resource.attributes.each do |attribute_name, attribute_value| next unless model_fields.include?(attribute_name) _resource[attribute_name] = attribute_value end _resource end render json: { resources: resources, total: total } end |
#show ⇒ Object
41 42 43 44 45 46 47 48 |
# File 'app/controllers/simple_admin/resources_controller.rb', line 41 def show model_klass = params[:model_klass_name].constantize model_fields = params[:model_fields] resource = model_klass.find(params[:id]).attributes.slice(*model_fields) render json: resource end |
#update ⇒ Object
62 63 64 65 66 67 68 69 70 71 |
# File 'app/controllers/simple_admin/resources_controller.rb', line 62 def update model_klass = params[:model_klass_name].constantize resource = model_klass.find(params[:id]) if resource.update(resource_params) render json: resource else render json: resource.errors end end |