使用列 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]) }
我希望标题是正确的。将 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]) }