Проблема заключается в том, что у меня есть удаленная форма, которая на основе условия id как будто бы конвертируется в не-удаленную форму (с использованием UJS), а затем отправляет. обратите внимание, что форма имеет загрузку файла.
Здесь подробности: я изначально предоставил удаленную форму, используя
= form_for @myobj, :url => {:action=>"remoteAction", :controller=>"myobjects"}, :remote => true do |f|
... (f.fields....)
который создает HTML:
<form id="new_myobj" class="new_myobj" method="post" accept-charset="UTF-8" data-remote="true" action="/remoteAction">
когда я нажимаю submit, как и ожидалось, форма отправляется "AS JS". в действии контроллера, я делаю некоторую проверку полей внутри представленной формы. Если все проверки проходят, я выполняю следующий шаблон .js.haml:
$('form#new_myobj').removeAttr("data-remote");
$('form#new_myobj').attr('enctype', 'multipart/form-data');
$('form#new_myobj').attr('action', '/myobjects/regularAction');
который успешно изменяет HTML на странице (засвидетельствован через Firebug), чтобы:
<form id="new_myobj" class="new_myobj" method="post" accept-charset="UTF-8" enctype="multipart/form-data" action="/myobjects/regularAction">
так как форма содержит f.file_field, я должен представить как multipart, чтобы изображение могло быть загружено, и я не могу отправить 'AS JS' теперь, когда я нажимаю кнопку "Отправить", действие контроллера "regularAction" действительно вызывается, но его все еще "AS JS"
вопрос в том, что еще мне нужно изменить в HTML, чтобы форма могла быть отправлена не-xhr? это связано с заголовками?