1
  def upload
    uploaded_io = params[:post][:image]
    File.open(Rails.root.join('app/assets', 'uploads', uploaded_io.original_filename), 'w') do |file|
      file.write(uploaded_io.read)
      params[:post][:image] = uploaded_io.original_filename
    end
  end

これはOSXの開発マシンでは正常に機能していますが、同じcod eon herokuを実行すると、500エラーが発生し、ログを確認すると、これが原因のようです。

2012-09-21T16:57:08+00:00 app[web.1]: Encoding::UndefinedConversionError ("\xB6" from ASCII-8BIT to UTF-8):
2012-09-21T16:57:08+00:00 app[web.1]:   app/controllers/posts_controller.rb:86:in `write'
2012-09-21T16:57:08+00:00 app[web.1]:   app/controllers/posts_controller.rb:86:in `block in upload'
2012-09-21T16:57:08+00:00 app[web.1]:   app/controllers/posts_controller.rb:85:in `open'
2012-09-21T16:57:08+00:00 app[web.1]:   app/controllers/posts_controller.rb:85:in `upload'
2012-09-21T16:57:08+00:00 app[web.1]:   app/controllers/posts_controller.rb:61:in `update'

私は何をすべきかについて無知です

4

1 に答える 1

0

私はそれが長い間あったことを知っていますが、多分これは誰かを助けることができます:

File.open(Rails.root.join('app/assets', 'uploads', uploaded_io.original_filename), 'wb') (w だけでなく wb を使用) を試すことができます。

于 2014-02-15T18:11:20.700 に答える