使用列对象更新模型

时间:2016-07-11 06:27:21

标签: ruby-on-rails ruby postgresql object ruby-on-rails-5

我希望标题是正确的。使用带有PostgreSQL和Ruby 2.3.1的Rails 5项目。

我在我的应用中启用了hstore。我不知道用对象数据更新表列的正确方法。有意义吗?

# 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

我试图让one of my previous questions适合这个但不知道从哪里开始。

1 个答案:

答案 0 :(得分:1)

您可以从数组

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

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

getName(first, last);