Module: Globalize::Model::ActiveRecord
- Defined in:
- lib/globalize/model/active_record.rb,
lib/globalize/model/active_record/translated.rb
Defined Under Namespace
Modules: Translated
Class Method Summary collapse
Class Method Details
.create_proxy_class(klass) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/globalize/model/active_record.rb', line 10 def create_proxy_class(klass) short_name = klass.name.gsub(/.+::/, '') klass.parent.const_set "#{short_name}Translation", Class.new(::ActiveRecord::Base){ set_table_name "#{klass.name}Translation".pluralize.underscore.gsub('/', '_') belongs_to "#{short_name.underscore}".intern, :class_name => klass.name, :foreign_key => "#{short_name.underscore}_id" def locale read_attribute(:locale).to_sym end def locale=(locale) write_attribute(:locale, locale.to_s) end } end |
.define_accessors(klass, attr_names) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/globalize/model/active_record.rb', line 26 def define_accessors(klass, attr_names) attr_names.each do |attr_name| klass.send :define_method, attr_name, lambda { globalize.fetch self.class.locale, attr_name } klass.send :define_method, "#{attr_name}=", lambda {|val| globalize.stash self.class.locale, attr_name, val self[attr_name] = val } end end |