使用列 objects 更新模型

Update Model with column objects

我希望标题是正确的。将 Rails 5 项目与 PostgreSQL 和 Ruby 2.3.1.

一起使用

我在我的应用中启用了 hstore。我不知道用 object 数据更新 table 列的正确方法。有道理吗?

# There will be only two arrays:
cars = ["honda", "bmw"]
rate = [1, 2]

cars.zip(rate).map do |c,r|
  Foo.find(1).update_attributes(bar: {c => r})
end
# Foo.find(1).bar = {"bmw" => 2}

我预计:

# Foo.find(1).bar = {"honda" => "1", "bmw" => 2}

如何把这两个值变成bar

我试图将 融入其中,但不确定从哪里开始。

您可以从数组创建散列

 a = cars.zip(rate)
 Foo.find(1).update_attributes(bar: Hash[a]) 

或者如果您需要一些枚举器

 cars.zip(rate).each_slice(2) { |x| Foo.find(1).update_attributes(bar: Hash[x]) }