我想实现如下所示的目标。如何获得
new_attributes
哈希值?
after_save :update_asterisk_contact
def update_asterisk_contact
changes # => [{ "sip_id"=>[334, 355], "updated_at"=>[Tue, 29 Oct 2013 16:03:17 CET +01:00, Tue, 29 Oct 2013 16:08:31 CET +01:00]}]
# new_attributes => {'sip_id'=> 355}
client = Asterisk::Client.instance
client.update(self.id, new_attributes)
end
如果我没理解错的话,你只需要使用
attributes
方法:
def update_asterisk_contact
client = Asterisk::Client.instance
client.update(id, attributes)
end
仅更新已更改的属性:
def update_asterisk_contact
client = Asterisk::Client.instance
client.update(id, attributes.slice(changed_attributes.keys))
end
attributes
包含所有模型属性及其新值。 changed_attributes
是所有已更改的属性(但具有旧值),因此我们仅限于已更改的属性。