琥珀框架花岗岩十进制数模型



我有一个运行Postgres的Rails应用程序,模型包含十进制字段。现在我正在用花岗岩创建一个琥珀API。我如何定义一个十进制字段在我的模型在水晶?

class User < Granite::Base
connection pg
table users
column id : Int64, primary: true
column api_token : String
column points : Float64 # this does not work
end

我得到一个运行时错误:

PG::ResultSet#read返回一个PG::Numeric。

Granite希望使用PG提供的列数据类型(在本例中为Numeric)。

因此,我会尝试将模型中的列定义为NumberFloat32

我没有在我的任何项目中使用这种列类型,但可能有一种情况,你需要做一个Rails迁移来改变列数据类型,这样它就可以与Amber和Rails一起工作。我不得不这样做,外键存储在PG表中的Int32,但实际的ID是Int64,这在获取记录时导致问题。答案是对那些定义为t.integert.bigint的列进行Rails迁移,问题就解决了。

你现在也可以加入我们的Discord !https://discord.gg/vwvP5zakSn

相关内容

  • 没有找到相关文章

最新更新