所以,我有一个对象列表,我想更新符合某些条件的项目,如果没有匹配项则插入一个对象。我想出的代码看起来并不优雅,它是这样的:
def upsert(type, text)
messages.each do |message|
if message.type == type
message.text = text
end
end
unless messages.any?{|message| message.type == type}
messages.insert(Message.new(type, text))
end
end