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

时间:2018-03-04 10:50:50

标签: ruby-on-rails ajax

我有一个按钮,使用内置帮助程序的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)

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

2 个答案:

答案 0 :(得分:1)

][字符来自布局文件。 您可以将test2.loc[np.isnan(test2['a']) & (np.isnan(test2['b']) == False), 'a'] = \ test3.loc[np.isnan(test3['a']) & (np.isnan(test3['b']) == False), 'b'] print (test2) a b 0 1.0 5 1 6.0 6 2 3.0 7 <一起使用。

layout: false

答案 1 :(得分:0)

只需使用layout: false

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

工作得很好:

enter image description here