我正在使用此代码上传用户的个人资料图片
if params[:user][:image].present?
uploaded_io = params[:user][:image]
name = "image_" << @user.username << uploaded_io.original_filename
File.open(Rails.root.join('public', 'images','profile',name ), 'w') do |file|
file.write(uploaded_io.read)
end
end
但是当我运行它时出现此错误cannot convert ascii-8bit to utf-8bit
所以我所做的是我在application.rb
文件中更改了我的默认编码,例如来自config.encoding = "ascii-8bit"
的此config.encoding = "utf-8"
。它开始工作正常。
但问题是现在我正在向用户发送邮件,以便从简单的rails邮件程序成功注册,现在在发送邮件之前,它给了我这个错误cannot convert utf-8bit to ascii-8bit
。
现在我完全被击中,其中只有一个人同时工作。我已经为enforce_encoding on strings
尝试了很多建议的解决方案,但它们似乎都没有效果。任何帮助,将不胜感激。感谢。
答案 0 :(得分:1)
将'w'改为'wb'
if params[:user][:image].present?
uploaded_io = params[:user][:image]
name = "image_" << @user.username << uploaded_io.original_filename
File.open(Rails.root.join('public', 'images','profile',name ), 'wb') do |file|
file.write(uploaded_io.read)
end
end