我有一个具有 3 种不同布局的应用程序: - 2 个用于用户和管理员的保护区(比如用户和管理员布局) - 另一个是通常的应用程序布局 应用程序布局使用一些谷歌服务( map 、字体和分析),而其他服务则不使用,因此在应用程序布局中我包含了脚本,而在其他布局中则没有。
发生的事情是,当从 protected 区域注销并重定向到主页时,由于 turbolinks 而没有调用脚本。
我试过的是:
- 将
data-no-turbolink
放在破坏用户/管理员 session 的链接中(但没办法,因为这不是到主页的直接链接,而只是调用一个操作进行重定向) - 将
data-no-turbolink
放在 home body 中,但没办法,因为我需要重新加载头部,脚本所在的位置 - 创建一个
initPage
函数,该函数包含在加载主页时在document.ready
完成的所有事情,但和以前一样,不会重新加载 scrips,所以只不需要外部服务的东西正在工作。
我找到的唯一解决方案是将不需要的脚本也放在其他布局中。
有什么建议吗?
最佳答案
试试像这样将 data-no-turbolink
添加到注销按钮:
<%=
link_to 'logout',
destroy_admin_session_path,
method: 'delete',
class: 'btn btn-xs btn-danger',
data: {no_turbolink: true}
%>
这应该呈现如下内容:
<a href="/admins/sign_out" class="btn btn-xs btn-danger" data-method="delete" data-no-turbolink>logout</a>
关于ruby-on-rails - 具有多种布局的 Rails Turbolinks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21911450/