Rails form_for mit file_field und remote => true und format =>: js
Ich übermittle ein form_for mit einem file_field darin. Wenn das Formular mit einem Beitrag gesendet wird, antwortet der Controller mit einer .js-Datei, die ausgeführt wird.
Das file_field ist optional.
Wenn ich eine Datei hochlade, wird die js-Datei in einem neuen Dokument (als einfache Textdatei) geöffnet und die js wird nicht ausgeführt. Wenn ich keine Datei hochlade, wird das Antwort-Div aktualisiert. Ich möchte, dass der Update-Erfolg in der Antwort div oder einer Fehlermeldung unabhängig vom Datei-Upload gemeldet wird.
Kann dies aus Sicherheitsgründen geschehen? Gibt es eine Problemumgehung für Personen, die dies tun möchten?
Grob,
Form teilweise _action.html.erb:
<div id="response"></div>
<%= form_for ... :remote => true, :url => {..., :format => :js} do |f| %>
...
<%= f.file_field :name %>
<% end %>
Controller :: Aktion
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 %>");