Module: Mongoid::Localization::ClassMethods

Defined in:
lib/mongoid/localization.rb

Instance Method Summary collapse

Instance Method Details

#create_accessors(name, meth, options = {}) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/mongoid/localization.rb', line 12

def create_accessors(name, meth, options ={})
  self.fields.keys.each do |field|
    if self.fields[field].options[:localize] == true
      define_method("#{field}_translations") {read_attribute(field)}
      define_method("#{field}_translations=") do |value|
        if value.is_a?(Hash)
          start_locale = I18n.locale
          value.keys.each do |key|
            if I18n.available_locales.include?(key.to_sym)
              I18n.locale = key
              write_attribute(field, value[key])
            end
            I18n.locale = start_locale
          end
        end
      end
    else
      super
    end
  end
end