今天做一个 Highchart 的图表,发现点击 link_to 链接后需要再刷新一下才显示,加入 :method => :get 参数后即可成功显示。 请教问题如下: link_to 难道不是默认用 get 发送请求? 下面这两个请求过程中有区别吗?
link_to "link", link_path link_to "link", link_path, :method => :get
Rails 默认启用 Turbolinks,可能是你的 Highchart 没有适配 Turbolinks,:method => :get 则禁用了该链接的 Turbolinks 属性。
:method => :get
简而言之,可能是你的 jQuery(document).ready( ... ); 没有被触发
jQuery(document).ready( ... );
直接把 turbolinks 禁用掉可能会好些
@libuchao @leiz_me 谢谢回答
如上面所说,Highchart 可能依赖的 DOMContentLoaded 或者 jQuery.ready()。Rails 使用了 Turbolinks,会产生一些影响,具体见 https://github.com/turbolinks/turbolinks-classic#events 中的解释。