Sha256: 8b527d1a84a3630af72122fd13d2eb3cd9757be40e116c5e4a6d106003b8d064

Contents?: true

Size: 663 Bytes

Versions: 18

Compression:

Stored size: 663 Bytes

Contents

module Spina
  class Resource < ApplicationRecord
    extend Mobility

    has_many :pages, dependent: :restrict_with_exception

    after_commit :update_resource_pages, on: [:update]

    translates :slug, backend: :jsonb

    def pages
      case order_by
      when "title"
        super.joins(:translations).where(spina_page_translations: {locale: I18n.locale}).order("spina_page_translations.title")
      when "created_at"
        super.order(:created_at)
      else
        super.order(:position)
      end
    end

    def update_resource_pages
      if previous_changes[:slug]
        ResourcePagesUpdateJob.perform_later(id)
      end
    end

  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
spina-2.9.0 app/models/spina/resource.rb
spina-2.8.1 app/models/spina/resource.rb
spina-2.8.0 app/models/spina/resource.rb
spina-2.7.0 app/models/spina/resource.rb
spina-2.6.2 app/models/spina/resource.rb
spina-2.6.1 app/models/spina/resource.rb
spina-2.6.0 app/models/spina/resource.rb
spina-2.5.0 app/models/spina/resource.rb
spina-2.4.0 app/models/spina/resource.rb
spina-2.3.5 app/models/spina/resource.rb
spina-2.3.4 app/models/spina/resource.rb
spina-2.3.3 app/models/spina/resource.rb
spina-2.3.2 app/models/spina/resource.rb
spina-2.3.1 app/models/spina/resource.rb
spina-2.3.0 app/models/spina/resource.rb
spina-2.2.0 app/models/spina/resource.rb
spina-2.1.1 app/models/spina/resource.rb
spina-2.1.0 app/models/spina/resource.rb