Я пытаюсь загрузить файл js на одну страницу моего приложения.Но он вызывается во всем, и это приводит к возникновению ошибок на моем экране.
Мой application.js:
//= require jquery
//= require rails-ujs
//= require activestorage
//= require turbolinks
//= require_tree .
Мой application.html.erb
<!DOCTYPE html>
<html>
<head>
<title>Netshow</title>
<%= csrf_meta_tags %>
<%= csp_meta_tag %>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
</head>
<body>
<div class='cover-container d-flex w-100 h-100 p-3 mx-auto flex-column'>
<header class='masthead mb-auto'>
<%= render 'shared/navbar' %>
</header>
<%= yield %>
<footer class='mastfoot mt-auto'>
<%= render 'shared/footer' %>
</footer>
</div>
</body>
</html>
Мой js-файл:
$(document).on("turbolinks:load", function() {
console.log('teste')
var player = videojs('my_video_1');
var options = {};
player.on('play', function() {
$.ajax({
type: 'POST',
url:"/video_clicks/",
dataType: 'json',
data: {
video_click: { video_id: window.location.pathname.split('/')[2] }
},
success: function(){
$('span.video-count')[0].innerText = parseInt($('span.video-count')[0].innerText) + 1
}
});
});
function showCount(){
var id = window.location.pathname.split('/')[2]
$.ajax({
type: 'GET',
url:"/video_clicks/"+id,
dataType: 'json',
success: function(data){
console.log($('span.video-count')[0])
$('span.video-count')[0].innerText = data
}
});
}
showCount()
});
Я хотел бы загрузить js-файл только на одной странице моего приложения, а не на всех.Как я могу это сделать?Я уже пытался удалить require_tree add content в application.html.erb и установить содержимое в моем html-файле, но rails говорит, что мне нужно добавить файл в assets.erb для предварительной компиляции, и когда я делаю это, другие страницы перезагружаютсямой файл js.