Sha256: 6cd20a1914d4f0498e6e66bdaaa09c4f6ebc58a7fc08920f9508dd2dfe8c5e72
Contents?: true
Size: 883 Bytes
Versions: 7
Compression:
Stored size: 883 Bytes
Contents
if Enjoy.mongoid? module Enjoy::HashField extend ActiveSupport::Concern module ClassMethods def enjoy_cms_hash_field(name, opts = {}) field "#{name}_hash", opts class_eval <<-EVAL def #{name}_str=(val) begin self.#{name}_hash = JSON.parse(val) rescue self[:#{name}_str] = val end end def #{name}_str self[:#{name}_str] ||= self.#{name}.to_json end def #{name} self.#{name}_hash end validate do if self.#{name}_str != self.#{name}.to_json self.errors.add(:#{name}, "Неверный формат данных") else self.remove_attribute :#{name}_str end true end EVAL end end end end
Version data entries
7 entries across 7 versions & 1 rubygems