是否有一种使用ActiveRecord的create方法加载二进制列的简单(或普遍接受)的方法?通过ActiveRecord从文件加载二进制数据创建
例如,我想要做的就是类似这样的东西:
MyTableObject.create :name => "Test", :image => File.read("PathToMyFile.jpg")
是否有一种使用ActiveRecord的create方法加载二进制列的简单(或普遍接受)的方法?通过ActiveRecord从文件加载二进制数据创建
例如,我想要做的就是类似这样的东西:
MyTableObject.create :name => "Test", :image => File.read("PathToMyFile.jpg")
我能得到这个工作。而不是做:
MyTableObject.create(
:name => "Test",
:image => File.read("PathToMyFile.jpg")
)
这做插入一条记录到数据库中,但没有文件
MyTableObject.create(
:name => "Test",
:image => File.open("PathToMyFile.jpg", 'rb').read
)
的正确的二进制表示似乎做的伎俩。
看起来像Windows中的问题 - 在Windows中(但不是像Linux或OSX那样的unix-like)二进制文件和文本文件的处理方式不同,因此需要明确的“rb”模式参数来正确加载文件。 – 2012-02-14 20:47:05
不是仅限Windows的问题。我和UNIX系统(准确地说,XUBUNTU)有同样的问题。推荐的解决方案也适用于我的系统。 – 2015-07-09 20:21:53
这不行吗? – 2009-08-27 19:52:37
它似乎不是......除非我只是做错了。 create方法返回true,我确实在DB中看到记录;但是,图像不可恢复,报告的文件大小不匹配。 – jerhinesmith 2009-08-27 20:51:08