ruby-on-rails - 具有多种布局的 Rails Turbolinks

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

我有一个具有 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/

相关文章:

ruby-on-rails - 将用户模型中的整数递增/递减 1

ruby-on-rails - 仅当 Rails 中的属性发生更改时才运行回调

ruby-on-rails - Rails 单行 if else 语句

javascript - 未捕获的类型错误 : undefined is not a function for $ ('#cropbox' ). Jcrop({

javascript - 如何使用 turbilinks rails 4 添加此功能

ruby-on-rails - _path 的方法未定义,但路由存在

css - 页眉 - 全宽

ruby-on-rails - 在Rails中,我可以抛出异常但继续吗?

javascript - Youtube 可以很好地与 Turbolinks 一起玩吗?

ruby-on-rails - 在 Rails 中使用 Turbolinks 5 时,我应该如何处理页面元素上的事件监听器?