class CmAdmin::Models::Export
def format_records(records, model, columns, helpers)
def format_records(records, model, columns, helpers) custom_fields = model.available_fields[:index].map{|field| field if field.field_type == :custom}.compact normal_fields = model.available_fields[:index].map{|field| field unless field.field_type == :custom}.compact deserialized_columns = CmAdmin::Utils.deserialize_csv_columns(columns, :as_json_params) # This includes isn't recursve, a full solution should be recursive records_arr = [] records.includes(deserialized_columns[:include].keys).find_each do |record| record_hash = record.as_json({only: columns.map(&:to_sym)}) columns.each do |column| break unless model.available_fields[:index].map(&:field_name).include?(column.to_sym) record_hash[column.to_sym] = record.send(column.to_sym) end custom_fields.each do |field| record_hash[field.field_name.to_sym] = helpers.send(field.helper_method, record, field.field_name) end records_arr << record_hash end records_arr end