Module: Mongoid::Urls::ClassMethods
- Defined in:
- lib/mongoid/urls.rb
Overview
Methods avaiable at the model
Instance Method Summary collapse
- #create_url_validations(options) ⇒ Object
- #find_url(u) ⇒ Object (also: #find_by_url)
-
#url(*args) ⇒ Object
The #url.
Instance Method Details
#create_url_validations(options) ⇒ Object
34 35 36 37 38 39 40 41 |
# File 'lib/mongoid/urls.rb', line 34 def create_url_validations() before_validation :create_urls reserve = Set.new(%w(new edit)) + ([: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) ⇒ Object Also known as: find_by_url
43 44 45 46 47 |
# File 'lib/mongoid/urls.rb', line 43 def find_url(u) find_by(url: u) || (!url_simple && find_by(urls: u)) rescue Mongoid::Errors::DocumentNotFound nil end |
#url(*args) ⇒ Object
The #url
url :title
:simple -> Only one url per instance
:reserve -> Defaults to %w( new edit ) + I18n.locales
25 26 27 28 29 30 31 32 |
# File 'lib/mongoid/urls.rb', line 25 def url(*args) = args. fail 'One #url per model!' if url_keys self.url_keys = args # .first.to_s self.url_simple = [:simple] create_url_fields create_url_validations() end |