Загрузка файла в Rails дает имя файла String вместо объекта File или StringIO

Рельсы 3, JRuby 1.6.7.2

Я пробовал что-то «элементарное», просто загружая один текстовый файл через форму для обработки в своем приложении. Проблема, которую я вижу, заключается в том, что вместо StringIO или File я получаю просто строку имени файла.

Вот код формы

= form_tag(:controller => "api/#{CURRENT_API_VERSION}/api", :action => 'file', :method=> :post, :multipart => true) do
    = label_tag "file"
    = file_field_tag "upload[file]"
    = submit_tag 'Analyze!'

И код контроллера, который просто дает мне @upload как строку, содержащую имя файла.

def file
        @upload = params[:upload][:file]
        render :template => 'api/file.html.haml'
      end

Запуск отладчика в контроллере дает мне @upload.class = String, и он не отвечает ни на какие файлы или методы StringIO, такие как чтение.

12
задан will_d 10 August 2012 в 05:13
поделиться