Class: RubyUIAdmin::ResourcesController
- Inherits:
-
ApplicationController
- Object
- ActionController::Base
- ApplicationController
- RubyUIAdmin::ResourcesController
- Defined in:
- app/controllers/ruby_ui_admin/resources_controller.rb
Instance Method Summary collapse
- #create ⇒ Object
- #destroy ⇒ Object
- #edit ⇒ Object
- #index ⇒ Object
- #new ⇒ Object
- #show ⇒ Object
- #update ⇒ Object
Instance Method Details
#create ⇒ Object
64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'app/controllers/ruby_ui_admin/resources_controller.rb', line 64 def create @record = @resource.new_record (:create, on: @record, policy_class: policy_class) @resource.hydrate(record: @record, view: :new) @resource.apply_defaults(@record) fill_record(@record, :new) if @record.save create_success_action else create_fail_action end end |
#destroy ⇒ Object
96 97 98 99 100 101 102 103 104 |
# File 'app/controllers/ruby_ui_admin/resources_controller.rb', line 96 def destroy (:destroy, on: @record, policy_class: policy_class) if @record.destroy destroy_success_action else destroy_fail_action end end |
#edit ⇒ Object
78 79 80 81 82 83 |
# File 'app/controllers/ruby_ui_admin/resources_controller.rb', line 78 def edit (:update, on: @record, policy_class: policy_class) @resource.hydrate(record: @record, view: :edit) render Views::Form.new(resource: @resource, record: @record, view: :edit) end |
#index ⇒ Object
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 |
# File 'app/controllers/ruby_ui_admin/resources_controller.rb', line 9 def index (:index, on: model_class, policy_class: policy_class) query = (model_class, policy_class: policy_class).apply_policy(@resource.base_query) query = apply_scope(query) query = apply_filters(query) query = apply_sorting(query) limit = RubyUIAdmin.configuration.per_page countless = @resource.class.countless || RubyUIAdmin.configuration.countless_pagination? @pagy, @records = if countless pagy_countless(query, limit: limit) else pagy(query, limit: limit) end render Views::Index.new( resource: @resource, records: @records, pagy: @pagy, filters: @resource.get_filters, filter_values: filter_params, scopes: @resource.get_scopes, current_scope_key: current_scope&.key, scope_param: params[:scope], remove_scope_all: @resource.remove_scope_all?, query_params: request.query_parameters, sort_by: params[:sort_by], sort_direction: sort_direction ) end |
#new ⇒ Object
55 56 57 58 59 60 61 62 |
# File 'app/controllers/ruby_ui_admin/resources_controller.rb', line 55 def new @record = @resource.new_record (:create, on: @record, policy_class: policy_class) @resource.hydrate(record: @record, view: :new) @resource.apply_defaults(@record) render Views::Form.new(resource: @resource, record: @record, view: :new) end |
#show ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'app/controllers/ruby_ui_admin/resources_controller.rb', line 42 def show (:show, on: @record, policy_class: policy_class) @resource.hydrate(record: @record, view: :show) # `?tab=N&fragment=1` returns just one tab's content (no page chrome) for lazy tab loading, # so that tab's fields/associations are only evaluated when the tab is actually opened. if params[:fragment] && params[:tab] render Views::ShowTab.new(resource: @resource, record: @record, tab_index: params[:tab].to_i) else render Views::Show.new(resource: @resource, record: @record) end end |
#update ⇒ Object
85 86 87 88 89 90 91 92 93 94 |
# File 'app/controllers/ruby_ui_admin/resources_controller.rb', line 85 def update (:update, on: @record, policy_class: policy_class) fill_record(@record, :edit) if @record.save update_success_action else update_fail_action end end |