how to get list of Active record fields in database order ?

If rec is an active record object and you call rec.attribute_names, it gives you the field names in alphabetical order. If there is a way to get the order that the fields where created into the dabatase on the create_table sql call, I would find that very useful. It seems like there is supposed to be a columns(), and column_names() methods, but I am not seeing them and wondering if they maybe disappeared in rails 3 ?

I wrote this for now, a terrible hack

  def get_order     str = self.inspect     ar = str.split(',')     ar[0] = ar[0].gsub(/^\S*/,'')     ar[ar.length - 1] = ar.last.chop     puts 'ar'     p ar     ar2 = ar.map{|el| el.split(":")[0].strip}     puts 'ar2'     p ar2     del_idxs =     ar2.each_with_index do |el,idx|       if !self.attribute_names.include?(el)         del_idxs << idx       end     end     puts 'del idx'     puts "\n\n\n"     del_idxs.each{|i| ar2.delete_at(i)}     ar2   end

Jedrin wrote in post #1016808:

If rec is an active record object and you call rec.attribute_names, it gives you the field names in alphabetical order. If there is a way to get the order that the fields where created into the dabatase on the create_table sql call, I would find that very useful.

How?

column_names is the one you’re looking for, it is a class method, so you should use it like Model.column_names