3

我正在提交一个带有 file_field 的 form_for。当表单与 post 一起提交时,控制器会响应一个 .js 文件,该文件将被执行。

file_field 是可选的。

当我上传文件时,js文件在一个新文档中打开(作为一个简单的文本文件)并且js没有被执行。当我不上传任何文件时,响应 div 会更新。我希望在响应 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 %>");
4

2 回答 2

4

尝试使用 remotipart gem https://github.com/JangoSteve/remotipart

于 2012-06-13T05:52:19.717 回答
0

以下解决方案对我有用

$('.sales_application_form').submit(function() {
    $(this).ajaxSubmit();
    return false;
  });
于 2017-11-27T11:28:13.950 回答