如何使用javascript(在view.js.erb中)生成rails视图?
在客户端,浏览器发送一个ajax请求,如下所示:如何使用javascript(在view.js.erb中)生成rails视图?,javascript,ruby-on-rails,ajax,Javascript,Ruby On Rails,Ajax,在客户端,浏览器发送一个ajax请求,如下所示: link_to( "#{sir.sir_id}", "results/#{sir.id}", remote: true, format: :js ), 在服务器端由我的控制器的show action作为JS处理: def show @sir_id = params[:id] @spectrum_identification_items = SpectrumIdentificationResult.find(@sir_id).
link_to( "#{sir.sir_id}", "results/#{sir.id}", remote: true, format: :js ),
在服务器端由我的控制器的show action
作为JS
处理:
def show
@sir_id = params[:id]
@spectrum_identification_items = SpectrumIdentificationResult.find(@sir_id).spectrum_identification_items
respond_to do |format|
format.html
format.js { }
end
end
到目前为止,这是正确处理的。现在,我创建了一个带有一行内容的show.js.erb
:
$("<%= escape_javascript render(file: 'spectrum_identification_results/show.haml') %>").appendTo('table#sii_table');
当调用非ajax和呈现html时,我可以检查show操作的内容是否正确处理
此外,我在chrome inspector中没有看到任何javascript错误
但是,“显示视图”文件的内容没有出现在任何位置
我在这里遗漏了什么?您在
附录之前遗漏了
,
是的,遗漏了,但仍然不起作用。show.haml的内容不会出现在任何地方JS控制台和网络日志中有什么?当我点击ajax链接时,JS控制台不会显示任何错误,网络日志显示200 OK
结果。我在网络日志(chrome inspector)中看到,有一个javascript响应生成了一个文件(响应200 OK)但在该文件的预览中,我看到,show.haml
的内容并没有附加到我想要的位置,而是放在一个内容标签中:`$(“Osea,你好吗?”).appendTo('table#sii_table')`
Rendered spectrum_identification_results/show.haml (0.4ms)
Rendered spectrum_identification_results/show.js.erb within layouts/application (2.4ms)
Completed 200 OK in 44ms