0

我想实现如下所示。如何获得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
4

2 回答 2

0

如果我理解正确,您只需要使用attributes方法:

def update_asterisk_contact
  client = Asterisk::Client.instance
  client.update(id, attributes)
end
于 2013-10-29T15:28:57.520 回答
0

仅更新更改的属性:

def update_asterisk_contact
  client = Asterisk::Client.instance
  client.update(id, attributes.slice(changed_attributes.keys))
end

attributes包含所有模型属性及其新值。changed_attributes是所有已更改的属性(但具有旧值),因此我们仅限于已更改的属性。

于 2013-10-29T15:32:57.487 回答