Module: LocalizableModel::ActiveRecordExtension

Defined in:
lib/localizable_model/active_record_extension.rb

Overview

LocalizableModel::ActiveRecordExtension

Extends ActiveRecord::Base with the localizable setup method.

Instance Method Summary collapse

Instance Method Details

#extend_with_localizable_model!Object



28
29
30
31
32
33
34
35
36
37
38
# File 'lib/localizable_model/active_record_extension.rb', line 28

def extend_with_localizable_model!
  return if is_a?(LocalizableModel::ClassMethods)

  send :extend,  LocalizableModel::ClassMethods
  send :include, LocalizableModel::InstanceMethods
  has_many(:localizations,
           as: :localizable,
           dependent: :destroy,
           autosave: true)
  before_save :cleanup_localizations!
end

#localizableObject

Extends the model with Localizable features. It takes an optional block as argument, which yields an instance of LocalizableModel::Configuration.

Example:

class Page < ActiveRecord::Base
  localizable do
    attribute :name
    attribute :body
  end
end


22
23
24
25
26
# File 'lib/localizable_model/active_record_extension.rb', line 22

def localizable(&)
  extend_with_localizable_model!
  localizable_configuration.instance_eval(&) if block_given?
  define_localizable_methods!
end