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
40 41 42 43 44 45 46 47 |
# File 'app/controllers/backstage/resources_controller.rb', line 40 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
57 58 59 60 |
# File 'app/controllers/backstage/resources_controller.rb', line 57 def destroy @record.destroy redirect_to resources_path(resource: params[:resource]) end |
#edit ⇒ Object
37 38 |
# File 'app/controllers/backstage/resources_controller.rb', line 37 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 31 |
# 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" arel_col = @resource_config.model_class.arel_table[@sort] scope = scope.order((@dir == "desc") ? arel_col.desc : arel_col.asc) 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
33 34 35 |
# File 'app/controllers/backstage/resources_controller.rb', line 33 def new @record = @resource_config.model_class.new end |
#update ⇒ Object
49 50 51 52 53 54 55 |
# File 'app/controllers/backstage/resources_controller.rb', line 49 def update if @record.update(record_params) redirect_to resources_path(resource: params[:resource]) else render :edit, status: :unprocessable_entity end end |