如何准备更新的属性哈希以更新外部服务

问题描述 投票:0回答:2

我想实现如下所示的目标。如何获得

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
ruby-on-rails ruby
2个回答
0
投票

如果我没理解错的话,你只需要使用

attributes
方法:

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

0
投票

仅更新已更改的属性:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.