class AttributeValue include Mongoid::Document include Mongoid::Timestamps include Mongoid::MultiParameterAttributes field :key belongs_to :attribute_field belongs_to :user before_save :check_key NO_MULTI_TAG = ["select","date","radio_button","checkbox","date_durnation"] def check_key self.key = attribute_field.key end def method_missing(*field) if field.size < 1 self[field[0]] else self[(field[0].to_s.delete "=")] = field[1] end end def get_value_by_locale(locale) case self.attribute_field.markup when "text_field" self.attribute_field.locale ? self[locale] : self[:value] when "select" self.attribute_field.markup_value[self[:value]][locale.to_s] || NoData when "email" self[:value] when "date" Date.new(self[:value]["(1i)"].to_i,self[:value]["(2i)"].to_i,self[:value]["(3i)"].to_i) when "addr" self[:value] else self.attribute_field.locale ? self[locale] : self[:value] end end def get_values if self.attribute_field.locale && !(NO_MULTI_TAG.include? self.attribute_field.markup) return Hash[VALID_LOCALES.collect{|lang| [lang,self[lang.to_sym]]}] else return self[:value] end end end