module Mongoid::Urls::ClassMethods
Methods avaiable at the model
Public Instance Methods
create_url_validations(options)
click to toggle source
# File lib/mongoid/urls.rb, line 33 def create_url_validations(options) before_validation :create_urls reserve = Set.new(%w(new edit)) + (options[:reserved] || []) reserve << I18n.available_locales if Object.const_defined?('I18n') self.reserved_words = reserve.flatten validates :url, uniqueness: true, presence: true, format: { with: /[a-z\d-]+/ } end
find_url(u)
click to toggle source
# File lib/mongoid/urls.rb, line 42 def find_url(u) find_by(url: u) || (!url_simple && find_by(urls: u)) rescue Mongoid::Errors::DocumentNotFound nil end
Also aliased as: find_by_url
url(*args)
click to toggle source
The url
url :title :simple -> Only one url per instance :reserve -> Defaults to %w( new edit ) + I18n.locales
# File lib/mongoid/urls.rb, line 24 def url(*args) options = args.extract_options! raise 'Only one #url per model!' if url_keys self.url_keys = args # .first.to_s self.url_simple = options[:simple] create_url_fields create_url_validations(options) end
Private Instance Methods
create_url_fields()
click to toggle source
# File lib/mongoid/urls.rb, line 52 def create_url_fields field :url, type: String index({ url: 1 }, unique: true) define_method('url=') do |val| self[:url] = val.parameterize end return if url_simple field :urls, type: Array, default: [] index(urls: 1) end