Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 将api响应中的值分配给RAILS中的特定模型对象_Ruby On Rails_Ruby_Model - Fatal编程技术网

Ruby on rails 将api响应中的值分配给RAILS中的特定模型对象

Ruby on rails 将api响应中的值分配给RAILS中的特定模型对象,ruby-on-rails,ruby,model,Ruby On Rails,Ruby,Model,我有一个联系人模型,它有三个属性: 姓名、电子邮件、身份证 name和email都存在,但id为空 我使用name和email通过API Post调用传入,这是我得到的回复: {"count": 1, "next": null, "previous": null, "results": [ {"id": 8067950, "name": "Bill","email": "test@test.com"}]} 我的循环如下所示: contacts_array.each do |contact|

我有一个
联系人
模型,它有三个属性:

姓名、电子邮件、身份证

name
email
都存在,但
id
为空

我使用
name
email
通过API Post调用传入,这是我得到的回复:

{"count": 1, "next": null, "previous": null, "results": [
  {"id": 8067950, "name": "Bill","email": "test@test.com"}]}
我的循环如下所示:

contacts_array.each do |contact|
  api_call(contact.name, contact.email)
end

contacts\u array
是一个ruby对象数组,即
Contact
模型。在该循环中,我如何分配响应
id
I get back to the contact in the
api_call

我真的不理解您的
联系人
模型之间的区别,但我假设他们是同一个模型

通常,您应该知道,在rails中自己处理名为
id
的字段是个坏主意。如果您坚持存储调用返回的id,那么您应该将其存储在另一个字段中,例如
api\u id

下面是一段代码,如果
api\u call
返回一个与您的问题类似的Ruby哈希,那么它应该可以正常工作

contacts_array.each do |contact|
  contact.api_id = api_call(contact.name, contact.email)['results'].first['id']
end

那么您的
api\u调用
调用返回字符串或Ruby哈希?