Class: Backstage::ResourcesController
- Inherits:
-
ApplicationController
- Object
- ActionController::Base
- ApplicationController
- Backstage::ResourcesController
- Defined in:
- app/controllers/backstage/resources_controller.rb
Instance Method Summary collapse
Instance Method Details
#create ⇒ Object
39 40 41 42 43 44 45 46 |
# File 'app/controllers/backstage/resources_controller.rb', line 39 def create @record = @resource_config.model_class.new(record_params) if @record.save redirect_to edit_resource_path(resource: params[:resource], id: @record.id) else render :new, status: :unprocessable_entity end end |
#destroy ⇒ Object
56 57 58 59 |
# File 'app/controllers/backstage/resources_controller.rb', line 56 def destroy @record.destroy redirect_to resources_path(resource: params[:resource]) end |
#edit ⇒ Object
36 37 |
# File 'app/controllers/backstage/resources_controller.rb', line 36 def edit end |
#index ⇒ Object
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 |
# File 'app/controllers/backstage/resources_controller.rb', line 6 def index @page = (params[:page] || 1).to_i per_page = Backstage.configuration.per_page scope = @resource_config.model_class.all if params[:q].present? col = @resource_config.display_column scope = scope.where("#{col} LIKE ?", "%#{params[:q]}%") end @resource_config.index_fields.select(&:enum?).each do |field| next unless params[field.name].present? scope = scope.where(field.name => params[field.name]) end valid_columns = @resource_config.index_fields.map { |f| f.name.to_s } if params[:sort].present? && valid_columns.include?(params[:sort]) @sort = params[:sort] @dir = (params[:dir] == "desc") ? "desc" : "asc" scope = scope.order("#{@sort} #{@dir}") end @total_pages = [(scope.count.to_f / per_page).ceil, 1].max @records = scope.offset((@page - 1) * per_page).limit(per_page) end |
#new ⇒ Object
32 33 34 |
# File 'app/controllers/backstage/resources_controller.rb', line 32 def new @record = @resource_config.model_class.new end |
#update ⇒ Object
48 49 50 51 52 53 54 |
# File 'app/controllers/backstage/resources_controller.rb', line 48 def update if @record.update(record_params) redirect_to resources_path(resource: params[:resource]) else render :edit, status: :unprocessable_entity end end |