Я использую вложенные партиалы для отображения данных в моем представлении, и я заметил, что мой javascript запускается несколько раз, когда я ухожу со страницы и затем возвращаюсь к ней:
<!-- index.html.erb -->
<div class="col-12 material">
<%= render 'meals', meals: @meals %>
</div>
<!-- end index.html.erb -->
<!-- _meals.html.erb -->
<div class="p-0" id="isotope">
<% meals.each do |meal| %>
<%= render "meals/meal", meal: meal %>
<% end %>
</div>
<script>
$(document).on('ready turbolinks:load', function() {
console.log("_meals partial")
})
</script>
<!-- end _meals.html.erb -->
<!-- _meal.html.erb -->
<%= link_to meal_path(meal[:slug]) do %>
<div class="item col-12 col-sm-6 col-md-4 col-lg-3 animated fast invisible p-2 a b <%= meal[:type_of] %>">
<div class="card m-0 my-lg-3 flex justify-content-between">
<div class="row flex align-items-center">
<div class="col-4 col-sm-12">
<%= image_tag meal[:image_link], class: "card-img-top ml-2 mt-2 ml-sm-0 mt-sm-0" %>
</div>
<div class="card-body col-8 col-sm-12">
<h5 class="card-title font-medium pb-3">
<%= meal[:name] %>
</h5>
<!-- <p class="card-text d-none d-sm-block">
<%#= meal[:description] %>
</p> -->
</div>
</div>
<div class="card-footer text-muted justify-content-center row">
<span style="margin: 2px;" class="badge bg-info-gradiant pointer"><%= meal.common_name %></span>
</div>
</div>
</div>
<% end -%>
<!-- end _meal.html.erb -->
Если яЯ смотрю index.html.erb
и нажмите обновить, я прочитал "_meals partial"
1x .Если я нажимаю на еду, затем нажимаю ссылку (<%= link_to "Menu", meals_path %>
), чтобы вернуться, я читаю "_meals partial"
2x .Если я повторяю этот процесс, я читаю "_meals partial"
3x и так далее ...
Почему это происходит?Что я могу сделать, чтобы это исправить?
РЕДАКТИРОВАТЬ:
В качестве теста я удалил турболинки, и теперь проблема не возникает.Я сомневаюсь, что это предназначенная функция турболинков, так что может быть что-то не так с конфигурацией, которая заставит турболинки перезагружать части моей страницы?