小编Chr*_*oph的帖子

在Ruby on Rails中使用无限浮点数

在使用SQLite3的Rails应用程序中,我想使用float值Float::INFINITY-Float::INFINITY在具有浮点属性的模型中使用.INSERT使用Model.create!它运行查询似乎工作正常,因为在这种情况下activerecord使用预准备语句.但是,当我尝试使用更新记录时foo.save,activerecord不使用准备好的stament并且只是将字符串Infinity放在查询中,导致

SQLite3::SQLException: no such column: Infinity
Run Code Online (Sandbox Code Playgroud)

有没有办法解决这个问题,还是需要在模型/数据库中使用字符串?

Rails版本3.2.21,SQLite3版本1.3.10


编辑.现在我将列类型更改为string在数据库迁移和使用中

serialize :property, Float
Run Code Online (Sandbox Code Playgroud)

告诉activerecord在数据库中存储YAML序列化的浮点数,允许存储Float::INFINITY就好了.

ruby sqlite activerecord ruby-on-rails

7
推荐指数
1
解决办法
697
查看次数

标签 统计

activerecord ×1

ruby ×1

ruby-on-rails ×1

sqlite ×1