Class: Airview::ResourcesController
- Inherits:
-
ApplicationController
- Object
- ActionController::Base
- ApplicationController
- Airview::ResourcesController
- Defined in:
- app/controllers/airview/resources_controller.rb
Instance Method Summary collapse
- #create ⇒ Object
- #destroy ⇒ Object
- #index ⇒ Object
- #references ⇒ Object
- #show ⇒ Object
- #update ⇒ Object
Instance Method Details
#create ⇒ Object
30 31 32 33 34 35 36 37 38 |
# File 'app/controllers/airview/resources_controller.rb', line 30 def create record = @resource.model_class.new(record_attributes) if record.save redirect_to resource_path(@resource.key), notice: "Record created" else redirect_to resource_path(@resource.key), alert: record.errors..to_sentence end end |
#destroy ⇒ Object
50 51 52 53 54 |
# File 'app/controllers/airview/resources_controller.rb', line 50 def destroy record = @resource.model_class.find(params[:id]) record.destroy! redirect_to safe_return_path || resource_path(@resource.key), notice: "Record deleted" end |
#index ⇒ Object
7 8 9 10 11 12 13 14 |
# File 'app/controllers/airview/resources_controller.rb', line 7 def index @resources = Airview.resources.values if @resources.any? redirect_to resource_path(@resources.first.key) else redirect_to setup_path end end |
#references ⇒ Object
56 57 58 59 60 61 62 63 64 65 |
# File 'app/controllers/airview/resources_controller.rb', line 56 def references field = @resource.field!(params[:field]) raise ActionController::RoutingError, "Not Found" unless field.association? scope = field.model_class.all term = params[:q].to_s.strip scope = filter_reference_scope(scope, field, term) if term.present? render json: scope.limit(20).map { |record| reference_payload(record, field) } end |
#show ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'app/controllers/airview/resources_controller.rb', line 16 def show @resources = Airview.resources.values @views = View.for_resource(@resource.key).ordered @active_view = @views.find { |view| view.id.to_s == params[:view_id].to_s } @sorted_fields = @resource.fields.values.sort_by { |field| field.label.downcase } @visible_fields = visible_fields @filter_conditions = filter_conditions @query = Query.new(@resource, query_params.merge(filters: @filter_conditions)) @records = @query.records @record = @resource.model_class.new @expanded_record = @delete_record = delete_record end |
#update ⇒ Object
40 41 42 43 44 45 46 47 48 |
# File 'app/controllers/airview/resources_controller.rb', line 40 def update record = @resource.model_class.find(params[:id]) if record.update(record_attributes) redirect_back fallback_location: resource_path(@resource.key), notice: "Record updated" else redirect_back fallback_location: resource_path(@resource.key), alert: record.errors..to_sentence end end |