【发布时间】:2026-01-03 19:35:01
【问题描述】:
我正在尝试使用 Rails 4 和 Turbolinks 使 JS sn-p 在具体页面中工作。我已经尝试过标准解决方案:
<script type="text/javascript">
var ready = function() {
// Bla bla
};
$(document).ready(ready);
$(document).on('page:load', ready);
</script>
但它似乎不起作用。我的 sn-p 是这样的:
<script type="text/javascript">
function ismready()
{
var API_KEY = "api key";
var roomId = "room id";
var ism = new Ismuser(API_KEY, roomId);
ism.init({
board: {
layer: "board"
},
video: {
camsContainer: "guest"
},
chat: {
layer: "chat"
},
moderator: true,
});
}
</script>
<script src="http://assets.ismuser.com/v0.4/js/ismuser.js" type="text/javascript"></script>
sn-p 无法按预期工作(即使使用标准解决方案),最后我只想在此页面中禁用 Turbolinks。
我该怎么做?
-- 解决方案
<% content_for :body do %>
<% if controller.controller_name == 'home' && controller.action_name == 'demo1' %>
<body data-no-turbolink="true">
<% end %>
<% end %>
【问题讨论】:
-
action_name 是否与“index”、“edit”等相关?这将是一个很好的解决方案,因为我想将 turbolink 限制为除索引页面之外的所有内容。
标签: javascript ruby-on-rails ruby turbolinks