module ActiverecordGlobalize::Translates::ClassMethods

Patches ActiveRecord models

Public Instance Methods

translates(*attrs) click to toggle source

Overrides ActiveRecord getters and setters to consider I18n locales

attrs translated fields names

# File lib/activerecord_globalize/translates.rb, line 66
def translates(*attrs)
  raise(ArgumentError, 'must have at least one record to localize') if attrs.empty?

  self.translated_attrs = attrs
  attrs.each do |attr_name|
    define_method "#{attr_name}=" do |value|
      write_translation(attr_name, value)
    end

    define_method attr_name do
      read_translation(attr_name)
    end

    define_method "#{attr_name}_translations" do
      self["#{attr_name}_translations"].try(:with_indifferent_access)
    end
  end
end