лучший способ перебрать все поля монгоидов

Скажем, у меня есть класс монгоидов

Class User
    include Mongoid::Document
    field :username, type: String
    field :age, type: Integer

    before_save :remove_whitespace

    def remove_whitespace
        self.username.strip!
        self.age.strip!
    end
end

В методе remove_whitespace; есть ли лучший способ перебрать все поля, чтобы удалить их с помощью блоков и итераторов, вместо того, чтобы вводить каждое поле отдельно (self.username.strip!)? У меня в классе около пятнадцати полей, и я искал элегантное решение проблемы.


person Lordking    schedule 05.10.2012    source источник


Ответы (1)


Разве нет метода attributes?

attributes.each {|attr| attr.strip!}

or

attributes.each do |attr_name, value|
  write_attribute(attr_name, value.strip)
end
person Ismael    schedule 06.10.2012