Ajax javascript 控制器中来自 form_for 的响应以 javascript 呈现为纯文本

Ajax javascript response in controller from form_for is rendered with the javascript as plain text

我试图在尝试编辑用户时获得 javascript 响应。我通过在提交表单时发出 ajax 调用来执行此操作。提交表单后呈现的页面是 javascript 响应的纯文本。因此,ajax 无法正常工作,javascript 呈现为文本。

苗条 html:

= form_for @user, html: { multipart: true }, authenticity_token: true, :format => :js, remote: true do |form|
      = form.label :avatar
      = form.file_field :avatar
      = form.submit "add an avatar!"

用户控制器中的更新方法:

 def update
     @user = User.find(params[:id])
     logger.debug request.format
     respond_to do |format|
          format.js { render layout: false, content_type: 'text/javascript' }
     end
  end

javascript 以纯文本显示的响应:

alert("hello");

遗憾的是,没有简单通用的方法可以通过 ajax 发送多部分表单。但是你仍然可以使用这个 gem https://github.com/JangoSteve/remotipart.

来解决问题