Sha256: 92752cc17274ce58fe417b45b21979fae6e31095fe0b58cbe6de3028e0dabb01

Contents?: true

Size: 639 Bytes

Versions: 4

Compression:

Stored size: 639 Bytes

Contents

module Slugs
  module Extensions
    module ActiveRecord
      module Finders
        extend ActiveSupport::Concern

        def find(id)
          if try(:sluggable?) && id.is_a?(String) && id !~ /\A\d+\z/
            order = Slugs::Slug.order(id: :desc)
            joins(:slugs).merge(order).find_by! slugs: { value: id }
          else
            super
          end
        end

        def exists?(value=:none)
          if try(:sluggable?) && value.is_a?(String) && value !~ /\A\d+\z/
            joins(:slugs).exists? slugs: { value: value }
          else
            super
          end
        end

      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
slugs-5.1.0 lib/slugs/extensions/active_record/finders.rb
slugs-4.0.0.3 lib/slugs/extensions/active_record/finders.rb
slugs-4.0.0.2 lib/slugs/extensions/active_record/finders.rb
slugs-4.0.0.1 lib/slugs/extensions/active_record/finders.rb