2013-05-02 5 views
1

Я загружал файл с рельсами с rest-client, но когда я меняю его на ajax,
дает некоторую ошибку сервера.Загрузка файлов Rails с помощью ajax

FORM код

<%= form_tag({:controller => 'person',:action => 'create'},:multipart => true) do 
%> 
<%= file_field_tag 'upload', :class => 'upload_name' %> 
<%= submit_tag "Upload", :class => "photo_up btn btn-success" %> 
<%end%> 

AJAX код

$(function(){ 
$(".photo_up").click(function(){ 

var filename = $(".upload_name").val(); 

$.ajax({ 
     url: '/create', //your server side script 
     data: { upload: filename}, //our data 
     type: 'POST', 
     success: function (response) {       
     } 

    }); 
return false; 
}); 
}); 

CONTROLLER код

file_param = params[:upload] 
puts "name os #{file_param}" 
show_url = "............." 
resource = RestClient::Resource.new show_url, :user => "admin",:password => "admin" 
response = resource.post :file => file_param, :multipart => true 

Вот когда я запускаю этот код, получил ошибку служить RestClient :: InternalServerError (500 Внутренняя ошибка сервера):, и я знаю, что сервер показывает нулевой указатель, в контроллере он дает ошибку в этой строке response = resource.post: file => file_param,: multipart => true. Но его запуск выполняется в нормальной форме без ajax.

ответ

0

К сожалению, нет простой и универсальный способ отправки многокомпонентные формы через AJAX

Посмотрите в JQuery ajaxForm плагин. Это упрощает эту задачу.

http://malsup.com/jquery/form/

Смежные вопросы