我需要获取对象的所有属性。我知道有一个方法attributes
,但它不会返回nil的属性。
例如:
class User
include Mongoid::Document
field :name
field :email
field :age
end
u = User.new(email: 'foo@bar.com', name: 'foo')
u.save
u.attributes # {'email' => 'foo@bar.com', 'name' => 'foo'}
我需要u.attributes
才能返回{'email' => 'foo@bar.com', 'name' => 'foo' 'age' => nil}
有一种方法as_json
可以满足我的需求,但速度要慢得多。速度非常重要。
答案 0 :(得分:0)
我找到了一个快速解决方案
self.attribute_names.map { |name| [name, self[name]] }.to_h
我想做的就是=)