Я участвую в процессе обучения Rails и борюсь с лучшими практиками в отношении специфичного для страницы javascript. Даже с помощью этого простого подхода, turbolinks (я считаю) вызывает javascript для выполнения дважды, если я посещаю страницу, а затем возвращаюсь к ней.Rails 5: Почему javascript выполняется дважды?
Для упрощения сценария я создал новый проект с двумя действиями контроллера и запустил сервер.
rails new jstest
cd jstest
rails g controller home index index2
rails server
Теперь я обновил взгляды на следующее:
index.html.erb:
<%= link_to "Index2", home_index2_path %>
<script>
console.log("hi from index!");
</script>
index2.html.erb:
<%= link_to "Index", home_index_path %>
<script>
console.log("hi from index2!");
</script>
При навигации к/home/index, следуя ссылке на index2, затем ссылка на индекс, который я ожидаю увидеть:
hi from index!
hi from index2!
hi from index!
Но вместо этого, я получаю третье сообщение дважды:
hi from index!
hi from index2!
hi from index!
hi from index!
Почему мой Javascript дважды выполняется на второй визит в индекс, и есть лучший способ настройки страницы конкретного JavaScript для не выполнять его дважды?
Благодарим за помощь.