我使用rails和haml。我通过 Ajax post 将数据发送到 Rails 中的 Controller :
$.ajax({
type: 'POST',
url: '/preview-image-upload',
processData: false,
contentType: false,
dataType : 'json',
data: data
});
然后我在 Controller 中执行数据并渲染js:
respond_to do |format|
if @previewupload.save
format.js
end
对象已正确保存。 .js.erb 文件也根据服务器日志正确呈现:
Rendered path/preview_image_upload.js.erb (0.2ms)
Completed 200 OK in 603ms (Views: 8.1ms | ActiveRecord: 8.5ms)
出于测试原因,我将警报放入了 Preview_image_upload.js.erb 文件中:
alert("Hello World");
但什么也没发生。看起来 .js.erb 文件已渲染但未执行。
尝试了这里的解决方案: js.erb not executing javascript but is processed rails
{ render layout: false, content_type: 'text/javascript' }
但这并没有奏效。
最佳答案
从 jQuery AJAX 调用执行 Rails javascript 响应的数据类型是 script
关于javascript - 尽管在 Rails 中渲染,.js.erb 文件并未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31207166/