Sha256: 8c2478fdd73f4c76a5c3c0dd9a2573f6d2eb2d1fc57e467ba3d55782823ef4e3
Contents?: true
Size: 1.39 KB
Versions: 23
Compression:
Stored size: 1.39 KB
Contents
module ActiveExt module ExtHelpers module DataHelper def self.build_json_data(core, options={}) result = {:totalCount => 0, :data => []} klass = get_klass(core.model) klass.include_root_in_json = false records = klass.all(options) result[:totalCount] = klass.count result[:data] = records result.to_json(:include => core.association_names) end def self.create_record(core, options={}) ignored_columns = %w{id created_at updated_at} klass = get_klass(core.model) options[:data].delete_if{|k,v| k.blank? || ignored_columns.include?(k)} obj = klass.create options[:data].each do |k,v| obj.send("#{k.to_s}=", v) end obj.save result = {:success => true, :data => []} result[:data] = obj result.to_json end def self.update_record(core, options={}) klass = get_klass(core.model) obj = klass.find(options[:id]) options[:data].each do |k,v| obj.send("#{k.to_s}=", v) end obj.save result = {:success => true, :data => []} result[:data] = obj result.to_json end def self.delete_record(core, options={}) klass = get_klass(core.model) klass.destroy(options[:id]) result = {:success => true, :data => []} result.to_json end private def self.get_klass(model) model.to_s.constantize end end end end
Version data entries
23 entries across 23 versions & 1 rubygems