【发布时间】:2015-08-14 05:19:12
【问题描述】:
在使用 SQLite3 的 Rails 应用程序中,我想在具有浮点属性的模型中使用浮点值 Float::INFINITY 和 -Float::INFINITY。使用Model.create! 运行INSERT 查询似乎工作正常,因为在这种情况下,activerecord 使用准备好的语句。但是,当我尝试使用 foo.save 更新记录时,activerecord 不使用准备好的语句,而只是将字符串 Infinity 放在查询中,导致
SQLite3::SQLException: no such column: Infinity
有没有办法解决这个问题,还是我需要在模型/数据库中使用字符串?
Rails 版本3.2.21,SQLite3 版本1.3.10
编辑。现在我在数据库迁移和使用中将列类型更改为string
serialize :property, Float
告诉activerecord在数据库中存储YAML序列化的浮点数,允许存储Float::INFINITY就好了。
【问题讨论】:
标签: ruby-on-rails ruby activerecord sqlite