Rails form_for с file_field и remote => true и format =>: js

Я отправляю form_for с file_field в нем. Когда форма отправляется с сообщением, контроллер отвечает файлом .js, который будет выполнен.

Поле file_ является необязательным.

Когда я загружаю файл, файл js открывается в новом документе (в виде простого текстового файла), а файл js не выполняется. Когда я не загружаю какой-либо файл, ответный div обновляется. Я хочу, чтобы об успешном обновлении сообщалось в ответном сообщении или сообщении об ошибке независимо от загрузки файла.

Может быть, это сделано из соображений безопасности? Есть ли обходной путь для людей, которые хотят это сделать?

Грубо говоря,

Форма частичная _action.html.erb:

<div id="response"></div>
<%= form_for ... :remote => true, :url => {..., :format => :js} do |f| %>
    ...
    <%= f.file_field :name %>
<% end %>

Действие контроллера ::

 if not request.post?
    render :partial => 'controller/action'
    return
 else
    @response = "save was successful";
    # renders the action.js.erb
 end

action.js.erb:

$("#response").html("<%= @response %>");
 Wukerplank13 июн. 2012 г., 07:47
Это потому, что вы не можете отправлять файлы через AJAX.

Ответы на вопрос(2)

Решение Вопроса

$('.sales_application_form').submit(function() {
    $(this).ajaxSubmit();
    return false;
  });

Ваш ответ на вопрос