Sha256: a46468124c6d9dde1e7e61ee6324416ff8e0aa5758311612a4d43824c72d93f7

Contents?: true

Size: 1.04 KB

Versions: 2

Compression:

Stored size: 1.04 KB

Contents

module FriendlyId
  # These methods will be added to the model's {FriendlyId::Base#relation_class relation_class}.
  module FinderMethods

    protected

    # FriendlyId overrides this method to make it possible to use friendly id's
    # identically to numeric ids in finders.
    #
    # @example
    #  person = Person.find(123)
    #  person = Person.find("joe")
    #
    # @see FriendlyId::ObjectUtils
    def find_one(id)
      return super if id.unfriendly_id?
      with_deleted.where(@klass.friendly_id_config.query_field => id).first or super
    end

    # FriendlyId overrides this method to make it possible to use friendly id's
    # identically to numeric ids in finders.
    #
    # @example
    #  person = Person.exists?(123)
    #  person = Person.exists?("joe")
    #  person = Person.exists?({:name => 'joe'})
    #  person = Person.exists?(['name = ?', 'joe'])
    #
    # @see FriendlyId::ObjectUtils
    def exists?(id = false)
      return super if id.unfriendly_id?
      super @klass.friendly_id_config.query_field => id
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
geothird_friendly_id-4.0.9.5 lib/friendly_id/finder_methods.rb
geothird_friendly_id-4.0.9.4 lib/friendly_id/finder_methods.rb