Ruby on rails 如何更新ID收集的收集数据?

Ruby on rails 如何更新ID收集的收集数据?,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.2,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.2,我在参数中获取ID的集合[1,2,3,4],并调用一个API,该API将返回相应ID的数组。例如,[“苹果”、“橘子”、“芒果”]。如何在我的数据库中更新相应的ID 例如:上面提到的id来自我的用户表ID=[1,2,3,4],它们是我的用户表中的主键 从API响应中,我得到了相关用户ID的水果名称数组。例如:ids=[1,2,3,4]和fruit\u name=[“a”、“b”、“c”、“d”],其中fruit\u name列存在于我的用户表中。如何从我的用户表中的API响应相关的ids更新fr

我在
参数中获取ID的集合
[1,2,3,4]
,并调用一个API,该API将返回相应ID的数组。例如,
[“苹果”、“橘子”、“芒果”]
。如何在我的数据库中更新相应的ID

例如:上面提到的
id
来自我的用户表<代码>ID=[1,2,3,4]
,它们是我的用户表中的主键

从API响应中,我得到了相关
用户ID
水果名称数组。例如:
ids=[1,2,3,4]
fruit\u name=[“a”、“b”、“c”、“d”]
,其中
fruit\u name
列存在于我的用户表中。如何从我的用户表中的API响应相关的
ids
更新
fruit\u name

ids.each_with_index do |id, index|
  User.update(id, :fruit_name, fruit_names[index])
end
上述代码假定:

ids = [1,2,3,4]
fruit_names = ["a","b","c","d"]
这些数组的索引是否匹配

请注意,这将对
ids
数组中的每个项目执行查询。如果您的
ids
数组非常大,那么这将不会很好地执行

Hash[ids.zip fruit_names].each do |id, fruit|
  User.update_all({:fruit_name => fruit}, {:id => id})
end


你必须提供更多关于你要做什么的细节。我们不知道你的数据库是什么样子的。另外,请告诉我们您尝试了什么,以及您到底遇到了什么困难。那么这个API调用到底是如何工作的呢?你知道
[“苹果”、“橘子”、“芒果”]
[1,2,3,4]
有什么关系吗?如果你不能在你的问题中说清楚,那就无法回答。我已经更新了我的问题。请看一看。@Mano一个问题可能无法回答这个问题。更新的格式始终为
updateusers SET fruit\u name='Apple',其中id=1
,因此无法在一个查询中使用不同的值更新多行。
User.where(:id => ids).each do |usr|
 usr.update_attribute(:fruit_name, fruit_names[ids.index(usr.id)])
end