我正在使用carrierwave-postgresql来存储用户上传的文件。
我有一个名为 FileUploader 的上传器(在 /app/uploaders/file_uploader.rb 中),带有storage :postgresql_lo
.
上传的文件链接到:file_oid
名为 UploadedFile 的模型中的列(在 app/models/uploaded_file.rb 中),其中mount_uploader :file_oid, FileUploader
:
class UploadedFile < ActiveRecord::Base
attr_accessible :file_oid, :processed, :type
mount_uploader :file_oid, FileUploader
end
我上传文件为
f = UploadedFile.new
f.file_oid = params[:flat_file]
f.save!
现在,当我尝试读取文件时,该read
方法可以正常工作,但我无法获得“每个”或“打开”。
> uf = UploadedFile.find(:first)
> uf.file_oid.read # works, gives the contents of the file
> uf.file_oid.file.read # this works too
> uf.file_oid.file.each
NoMethodError: undefined method `each' for #<CarrierWave::Storage::PostgresqlLo::File:0x000000039157a0>
> uf.file_oid.file.open
NoMethodError: private method `open' called for #<CarrierWave::Storage::PostgresqlLo::File:0x000000039157a0>
> uf.file_oid.open
NoMethodError: private method `open' called for /uploadedfile_file_oid/231132:FileUploader