2017-01-11 54 views
-1

我需要获取对象的所有属性。我知道有一个方法attributes,但它不会返回为零的属性。 例如:如何获取对象的所有属性,包括那些零?

class User 
    include Mongoid::Document 

    field :name 
    field :email 
    field :age 
end 

u = User.new(email: '[email protected]', name: 'foo') 
u.save 
u.attributes # {'email' => '[email protected]', 'name' => 'foo'} 

我需要u.attributes返回{'email' => '[email protected]', 'name' => 'foo' 'age' => nil}

有一个方法as_json这我想要做什么,但它是慢了很多。速度非常重要。

回答

0

我找到了一个快速的解决方案

self.attribute_names.map { |name| [name, self[name]] }.to_h 

它所有我想要=)

相关问题