ruby-on-rails 我有一个包含货币列和货币数组的表,我想为列的每个示例分配数组的每个元素

hec6srdp  于 2022-12-30  发布在  Ruby
关注(0)|答案(2)|浏览(118)

以便按时间顺序将数组的每个元素分配给列的每个示例
这是我尝试过的方法:

currencies = [...]

i = 0
Country.all.each do |country|
  Country.update(currency: currencies[i])
  i = i + 1
end

currencies.each do |currency|
  Country.all.each do |country|
    country.update(currency: currency)
  end
end

我的期望是将第一个国家列分配给第一个数组元素的值,将第二个国家列分配给第二个元素,以此类推。

v8wbuo2f

v8wbuo2f1#

解决了。

i = 0
Country.all.each do |country|
  country.update(currency: currencies[i])
  i += 1
end
krugob8w

krugob8w2#

你可以简化一下:

Country.all.each_with_index do |country, i|
  country.update(currency: currencies[i])
end

是否有机会使用zip方法:

Country.all.zip(currencies) do |country, currency|
  country.update(currency: currency)
end

重复一遍:

Country.all.zip([:usd, :eur, :gbp].cycle) do |country, currency|
  country.update(currency: currency)
end

相关问题