Module: FriendlyId::ClassMethods
- Defined in:
- lib/friendly_id.rb
Constant Summary collapse
- DEFAULT_FRIENDLY_ID_OPTIONS =
Default options for friendly_id.
{:method => nil, :use_slug => false, :max_length => 255, :reserved => [], :strip_diacritics => false, :scope => nil}.freeze
- VALID_FRIENDLY_ID_KEYS =
[:use_slug, :max_length, :reserved, :strip_diacritics, :scope].freeze
Instance Method Summary collapse
-
#has_friendly_id(column, options = {}) ⇒ Object
Set up an ActiveRecord model to use a friendly_id.
Instance Method Details
#has_friendly_id(column, options = {}) ⇒ Object
Set up an ActiveRecord model to use a friendly_id.
The column argument can be one of your model’s columns, or a method you use to generate the slug.
Options:
-
:use_slug
- Defaults to false. Use slugs when you want to use a non-unique text field for friendly ids. -
:max_length
- Defaults to 255. The maximum allowed length for a slug. -
:strip_diacritics
- Defaults to false. If true, it will remove accents, umlauts, etc. from western characters. -
:reseved
- Array of words that are reserved and can’t be used as slugs. If such a word is used, it will be treated the same as if that slug was already taken (numeric extension will be appended). Defaults to [].
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/friendly_id.rb', line 29 def has_friendly_id(column, = {}) .assert_valid_keys VALID_FRIENDLY_ID_KEYS = DEFAULT_FRIENDLY_ID_OPTIONS.merge().merge(:column => column) write_inheritable_attribute :friendly_id_options, class_inheritable_reader :friendly_id_options if [:use_slug] has_many :slugs, :order => 'id DESC', :as => :sluggable, :dependent => :destroy, :readonly => true require 'friendly_id/sluggable_class_methods' require 'friendly_id/sluggable_instance_methods' extend SluggableClassMethods include SluggableInstanceMethods before_save :set_slug else require 'friendly_id/non_sluggable_class_methods' require 'friendly_id/non_sluggable_instance_methods' extend NonSluggableClassMethods include NonSluggableInstanceMethods end end |