我希望实现类似下面的内容。如何获得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
答案 0 :(得分:0)
如果我理解正确,您只需要使用attributes
方法:
def update_asterisk_contact
client = Asterisk::Client.instance
client.update(id, attributes)
end
答案 1 :(得分:0)
仅更新已更改的属性:
def update_asterisk_contact
client = Asterisk::Client.instance
client.update(id, attributes.slice(changed_attributes.keys))
end
attributes
包含所有模型属性及其新值。 changed_attributes
是所有已更改的属性(但使用旧值),因此我们限制已更改的属性。