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
55 56 57 58 59 60 61 62 63 64 65 |
# File 'app/controllers/simple_admin/resources_controller.rb', line 55 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
78 79 80 81 82 83 |
# File 'app/controllers/simple_admin/resources_controller.rb', line 78 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 40 41 42 43 44 |
# File 'app/controllers/simple_admin/resources_controller.rb', line 3 def index model_klass = params[:model_klass_name].constantize model_fields = params[:model_fields].map { |field_attributes| field_attributes[:field_name] } per_page = params[:per_page].to_i page = params[:page].to_i if params[:page].present? total = model_klass.count resources = model_klass.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? if params[:sort].present? resources = resources.order(params[:sort][:column_name] => params[:sort][:order]) else resources = resources.order(id: :asc) end 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
46 47 48 49 50 51 52 53 |
# File 'app/controllers/simple_admin/resources_controller.rb', line 46 def show model_klass = params[:model_klass_name].constantize model_fields = params[:model_fields].map { |model_field| model_field['field_name'] } resource = model_klass.find(params[:id]).attributes.slice(*model_fields) render json: resource end |
#update ⇒ Object
67 68 69 70 71 72 73 74 75 76 |
# File 'app/controllers/simple_admin/resources_controller.rb', line 67 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 |