Если не вводить новый метод в Mongoid :: Document, вы можете сделать это в своей модели.
self.fields.collect { |field| field[0] }
Обновление : Хм, лучше, если вы упали.
В папке модели создайте новый файл и назовите его model.rb
class Model
include Mongoid::Document
def self.column_names
self.fields.collect { |field| field[0] }
end
end
Теперь ваша модель может наследовать от этого класса вместо включения Mongoid :: Document. capture.rb будет выглядеть следующим образом
class Capture < Model
field :species, :type => String
field :captured_by, :type => String
field :weight, :type => Integer
field :length, :type => Integer
def label
"#{name} #{title}"
end
end
Теперь вы можете использовать это изначально для любой модели.
Capture.column_names