bytea barfs设置为nil时

时间:2013-12-15 19:31:29

标签: ruby-on-rails postgresql database-design

我正在将二进制数据保存到数据库中以进行进程内成像,因此我可以逐步对图像进行操作,而无需将其往返于我的数据存储。为了保持数据库大小的可管理性,我只允许每个用户一次激活一个图像,因此我将所有图像字段设置为nil(活动图像除外),因此用户有大量带有图像数据指针的作业,但是只有一个有实际的图像数据。

当我将字段设置为nil时,我收到彩色错误消息 [wtf]

Could not log "sql.active_record" event. NoMethodError: undefined method `bytesize' for nil:NilClass

如果我将字段设置为''事情很开心。在这种情况下,我是否误解了使用nil。

1 个答案:

答案 0 :(得分:1)

这意味着你在ruby中的一个(验证?)检查是使用bytesize计算二进制字符串的大小。当字符串不是nil时,它应该有条件地这样做。