Class: Spina::Admin::Journal::VolumesController
- Inherits:
-
ApplicationController
- Object
- AdminController
- ApplicationController
- Spina::Admin::Journal::VolumesController
- Defined in:
- app/controllers/spina/admin/journal/volumes_controller.rb
Overview
Controller for Volume records.
Instance Method Summary collapse
-
#create ⇒ Object
rubocop:disable Metrics/AbcSize.
- #destroy ⇒ Object
- #edit ⇒ Object
- #index ⇒ Object
- #sort ⇒ Object
Instance Method Details
#create ⇒ Object
rubocop:disable Metrics/AbcSize
18 19 20 21 22 23 24 25 26 27 28 |
# File 'app/controllers/spina/admin/journal/volumes_controller.rb', line 18 def create # rubocop:disable Metrics/AbcSize @volume = Volume.new @volume.journal_id = Journal.instance.id @volume.number = Volume.any? ? Volume.sorted_desc.first.number + 1 : 1 @volume.save! redirect_to admin_journal_volumes_path, success: t('.created', number: @volume.number) rescue ActiveRecord::RecordNotUnique # can only happen because of some race condition where two Volumes are created at the same time logger.error 'Error when creating new volume. Retrying...' retry end |
#destroy ⇒ Object
30 31 32 33 34 35 36 37 |
# File 'app/controllers/spina/admin/journal/volumes_controller.rb', line 30 def destroy @volume.destroy respond_to do |format| format.html do redirect_to admin_journal_volumes_path, success: 'Volume deleted.' end end end |
#edit ⇒ Object
16 |
# File 'app/controllers/spina/admin/journal/volumes_controller.rb', line 16 def edit; end |
#index ⇒ Object
12 13 14 |
# File 'app/controllers/spina/admin/journal/volumes_controller.rb', line 12 def index @volumes = Volume.sorted_asc end |
#sort ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'app/controllers/spina/admin/journal/volumes_controller.rb', line 39 def sort ActiveRecord::Base.transaction do sort_params.each do |id, new_pos| # ignore uniqueness validation for now Volume.find(id.to_i).update_attribute(:number, new_pos.to_i) # rubocop:disable Rails/SkipsModelValidations end validate_sort_order end render json: { success: true, message: t('.sort_success') } rescue ActiveRecord::RecordInvalid render json: { success: false, message: t('.sort_error') } end |