Rails 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 メソッドに応答しません。