可以从控制器渲染javascript但无法渲染.js文件

问题描述 投票:0回答:2

我有一个按钮,使用内置帮助程序的rails,使用Ajax远程提交表单:

  button_to 'Delete Document', [:proofreader, proofreading_job, proofread_document], 
               method: :delete, 
               remote: true,  
               class: "btn btn-danger btn-sm", 
               data: { disable_with: "Deleting document..." }

当表单提交给控制器时,我可以使警报显示如下:

def destroy
  @proofread_document.destroy
  respond_to do |format|
    format.js { render js: "alert('The username to be displayed is:')"}
  end
end

但是,当我想渲染其中没有代码的destroy.js.erb文件时,我在浏览器中收到以下错误:

def destroy
  @proofread_document.destroy
  respond_to do |format|
    format.js
  end
end

Uncaught SyntaxError: Unexpected token <
    at processResponse (rails-ujs.self-ed0b535c2816e34ce8dee0346bd17387dffd4873cb347fa9a8b267dae6f7f41b.js?body=1:257)
    at rails-ujs.self-ed0b535c2816e34ce8dee0346bd17387dffd4873cb347fa9a8b267dae6f7f41b.js?body=1:186
    at XMLHttpRequest.xhr.onreadystatechange (rails-ujs.self-ed0b535c2816e34ce8dee0346bd17387dffd4873cb347fa9a8b267dae6f7f41b.js?body=1:241)

我如何解决这个问题,它停止了这个项目的所有开发。

ruby-on-rails ajax
2个回答
1
投票

qazxsw poi字符来自布局文件。你可以使用qazxsw poi和<

layout: false

0
投票

只需使用render

def destroy
  @proofread_document.destroy
  respond_to do |format|
    format.js {render layout: false}
  end
end

工作得很好:

layout: false

© www.soinside.com 2019 - 2024. All rights reserved.