Ответ 1
Конечно, возможно, здесь У вас есть учебник и пара ссылок на плагины.
Есть ли какой-либо простой способ обработки загрузки файла AJAX в Rails? например с плагином
Конечно, возможно, здесь У вас есть учебник и пара ссылок на плагины.
Если вы используете Rails 3, я написал плагин, который делает загрузку файла стиля AJAX относительно тривиальным для реализации.
Загрузка файла JQuery - очень активный и универсальный проект виджета загрузки файлов.
Смотрите демо здесь: http://blueimp.github.com/jQuery-File-Upload/
Здесь Gem: http://rubygems.org/gems/jquery.fileupload-rails
В вики также есть примеры Rails: https://github.com/blueimp/jQuery-File-Upload/wiki
Не нужно использовать для этого некоторые специальные плагины. Самый простой способ сделать загрузку изображений ajax для меня - это просто сделать форму, которая загружает фотографии, чтобы действовать как ajax. Для этого я использую плагин ajaxForm jQuery: http://www.malsup.com/jquery/form/ Затем верните загруженное изображение js и поместите его на свою страницу.
Итак, вы должны сделать свою форму ajaxForm:
$('#uploader').ajaxForm({dataType: "script",
success: ajaxFormErrorHandler,
error: ajaxFormSuccessHandler
}
выглядит так:
def add_photo
@photo = PhotosMeasurement.new(params[:user_photo])
respond_to do |format|
if @photo.save
format.json { render :json => @photo}
else
format.json { render :json => nil}
end
end
end
а в ajaxFormSuccessHandler вы просто получаете объект изображения:
var photo = jQuery.parseJSON(responseText.responseText);
и поместите фото где угодно:
target.find('.addPhoto').before(''+
'<input class="imageId" type="hidden" value='+photo.id+' > '+
'<img src='+photo.photo.thumb.url+' alt="Thumb_1"> ');
P.S: Не знаю, почему, но если вы вернетесь к обработчику ajaxForm, он обрабатывает этот запрос как ERROR, а не SUCCESS.
P.P.S: конечно, плагин jQuery-File-Upload делает больше, но если вам это не нужно, вы можете использовать этот способ.
P.P.P.S: у вас должна быть уже функциональная загрузка файла без ajax для этого =)