我在表中有一个blob
列,我知道它代表pdf文档。我正在尝试编写一个从blob
字段中删除pdf文档的迁移,并将实际的pdf文档保存在public / assets中。我使用paperclip作为附件。
以下是我遇到的错误:
StandardError:发生错误,以后所有迁移都被取消:" \ xC4"从ASCII-8BIT到UTF-8
这是我的剧本:
class AddSomeAttachments < ActiveRecord::Migration
def up
SomeModel.all.each do |something|
if something.data.present?
FileUtils.mkdir_p(Rails.root.join('public', 'assets', 'some_models', 'attachment1', "#{something.id}" ))
end
end
SomeModel.all.each do |something|
if something.data.present?
File.open(Rails.root.join('public', 'assets', 'some_models', 'attachment1', "#{something.id}", "#{something.attachment1_file_name}"), "w+") do |file|
file << something.data
end
end
end
end
def down
raise "do not migrate down"
end
end
我确实看了this stack overflow question,询问了同样的错误消息。我确实尝试在文件顶部添加encoding: UTF-8
,但没有做任何事情。
答案 0 :(得分:1)
尝试编写二进制文件:
File.open(filename, 'wb') do |file|