У меня есть модель, которая принимает загрузку аудио файлов (с использованием Rails 5.2.2, active_storage). Чтобы проверить это, я сделал вид, который просто создает кнопку воспроизведения для каждого:
<% @page.uploads.each do |upload| %>
<div class="player btn btn-outline-secondary">
<%= audio_tag rails_blob_url upload %>
Play
</div>
<% end %>
<script>
$(document).ready(function() {
$(".player").click(function() {
$(this).children('audio')[0].play();
});
});
</script>
Это прекрасно работает, но через 5 минут перестает работать, нажатие кнопок больше не воспроизводит звуки, и страница должна быть обновлена, чтобы снова заработать. (по крайней мере, в Chrome и FireFox Safari, похоже, продолжает работать).
Я думаю, что это как-то связано с URL-адресами перенаправления, генерируемыми активным хранилищем, срок действия которого истекает через 5 минут ... но я подумал, что rails_blob_url всегда возвращает новый URL-адрес файла. Это похоже на правильный подход, или я что-то упустил?