哈希表的列值为整数

时间:2016-07-11 11:51:18

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

我跟着this tutorial在我的模型上有一个哈希列,效果很好。

当我在rails console中计算代码时,它在我的控制器代码中变得不同。在控制台中:

Foo.update_attributes(bar: {"a" => 1, "b" => 2})

我的值在控制台中显示为整数。在我的控制器中,如果我正在进行计算,我必须添加.to_i.to_f,它会变得混乱。我的价值观将永远是一个数字。我可以简单地为列添加int或float吗?

add_column :foos, :bar, :hstore, :integer, default: {}, null: false

以上不起作用。

1 个答案:

答案 0 :(得分:0)

您可以在模型上使用钩子:

before_save -> r { r.bar.each{|k, v| r.bar[k] = v.to_i} }