将 Table 列值哈希为整数
Hash Table Column Values as Integer
我已经按照 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
上面的不行。
您可以在模型上使用挂钩:
before_save -> r { r.bar.each{|k, v| r.bar[k] = v.to_i} }
我已经按照 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
上面的不行。
您可以在模型上使用挂钩:
before_save -> r { r.bar.each{|k, v| r.bar[k] = v.to_i} }