solnic / virtus

[DISCONTINUED ] Attributes on Steroids for Plain Old Ruby Objects
MIT License
3.77k stars 228 forks source link

to_h/to_hash should deeply convert attributes to a hash #332

Open bradrobertson opened 8 years ago

mraaroncruz commented 8 years ago

Just a heads up here, this blows up if you are using the Array[MyVirtusModel] type.

You can bypass this via:

  class ModelCollection < Array
    def to_h
      map { |model|
        model.to_h
      }
    end
  end

  class Image
    include Virtus.model
    attribute :width,       Integer
    attribute :height,      Integer
    attribute :url,         String
  end

  class Album
    include Virtus.model
    attribute :id,          String
    attribute :title,       String
    attribute :type,        String
    attribute :images,      ModelCollection[Image]
  end
MissingHandle commented 7 years ago

@bradrobertson @pferdefleisch - thanks for this - I needed to, so I handled the Array case here -

https://github.com/Fooda/virtus/pull/2

in case it helps.