Rails Turbolinks具有多种布局

时间:2014-02-20 14:58:20

标签: ruby-on-rails ruby-on-rails-4 turbolinks

我有一个有3种不同布局的应用程序:   - 2表示用户和管理员的保护区(比如用户和管理员布局)   - 另一个是通常的应用程序布局 应用程序布局使用一些谷歌服务(地图,字体和分析),而另一个不使用,因此在应用程序布局中我包含脚本而在其他布局中没有。

当从受保护区域注销并重定向到主页时,会因为turbolinks而不调用脚本。

我尝试的是:

  • data-no-turbolink放入销毁用户/管理员会话的链接中(但是没办法,因为这不是指向主页的直接链接,而只是调用进行重定向的操作)
  • data-no-turbolink放入本体,但没办法,因为我需要重新加载头部,脚本在哪里
  • 创建一个initPage函数,其中包含在加载主页时在document.ready处要完成的所有事情,但与之前一样,不会重新加载scrips,因此只有不需要外部服务的内容才是工作

我找到的唯一解决方案是将不需要的脚本也放在其他布局中。

有什么建议吗?

1 个答案:

答案 0 :(得分:4)

尝试将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>