Вам тоже нужно что-то на сервере.
Я рекомендую использовать скрепку для хранения файлов на вашем сервере.
Как только вы его настроите, вы должны заставить свой ajax сгенерировать одну форму с полем "file". Также помните, что форма должна быть составной.
<% form_for @picture, :html => { :multipart => true } do |f| %>
<%= f.file_field :file %>
<%= f.submit "Submit" %>
<% end %>
Если вам просто нужно загрузить один файл, вам, вероятно, не нужен полный AJAX - только обычный javascript - для отображения / скрытия формы. Как это:
<%= link_to_function 'Show/Hide image upload') do |page|
page.visual_effect :toggle_blind, 'upload_image'
end
%>
<div id='upload_image' style='display:none'>
<% form_for @picture, :html => { :multipart => true } do |f| %>
<%= f.file_field :file %>
<%= f.submit "Submit" %>
<% end %>
</div>
Обратите внимание, что для сокрытия / показа div я использую эффект Scriptaculous, а не просто прототип - ScriptAculous в любом случае включается по умолчанию в рельсы.