Ruby on rails 合并Rails对象,仅保留当前值

Ruby on rails 合并Rails对象,仅保留当前值,ruby-on-rails,object,merge,Ruby On Rails,Object,Merge,我有一个要合并为一个的对象数组: [ #<User firstname: 'John', middlename: '', lastname: nil> #<User firstname: '', middlename: '', lastname: 'Doe'> #<User firstname: nil, middlename: 'W.', lastname: nil> ] 好吧,它可以工作,但代码看起来不是很干净…如果有多

我有一个要合并为一个的对象数组:

[
  #<User firstname: 'John', middlename: '',   lastname: nil>
  #<User firstname: '',     middlename: '',   lastname: 'Doe'>
  #<User firstname: nil,    middlename: 'W.', lastname: nil>
]

好吧,它可以工作,但代码看起来不是很干净…

如果有多个对象具有一个属性集,会发生什么情况?我更新了我的问题“什么回答了你的问题”。这并不重要,因为我的对象总是只有一个属性集。如果有多个对象具有一个属性集,会发生什么?我更新了我的问题“什么回答了你的问题”。这并不重要,因为我的对象总是只有一个属性集。
#<User firstname: 'John', middlename: 'W.', lastname: 'Doe'>
master = nil
my_array.each do |user|
  if !master
    master = user
  else
    user.attributes.each do |k, v|
      if v.present? && !master.send(k).present?
        master.send(:"#{k}=", v)
      end
    end
  end
end