У меня хорошее понимание рубинов и рельсов, но мне не хватает знаний в javascript. То, что я хотел бы сделать, это отслеживать, когда пользователь завершает просмотр видео.Trigger a form on javascript event
Я использую wistia и мой код в настоящее время выглядит следующим образом:
:javascript
wistiaEmbed = Wistia.embed("#{@chapter.video_id}", {
autoPlay: true,
videoFoam: true,
playerColor: '000000'
});
wistiaEmbed.bind("end", function() {
document.getElementById('target').style.display = 'none';
document.getElementById('finished').style.display = 'block';
});
То, что я хочу, чтобы выполнить это вызов создать действие для моей chapter_completion модели. Это принимает user_id и chapter_id на «конце» видео.
Так что я мог бы сделать эту работу в форме, выполнив:
form_for current_user.chapter_completions.new do |f|
f.hidden_field :chapter_id, value: @chapter.id
f.submit
end
Однако я хочу, чтобы это было представлено автоматически в фоновом режиме в конце wistia видео.
Хорошо, что работает! Теперь, если бы я мог добавить что-то дополнительно. Я бы хотел, чтобы форма не была видна, но сохраняла данные. Кроме того, в рельсах создание требует перенаправления или обновления. Как я могу избежать этого? Я просто хочу остаться на одной странице и не иметь видимой формы. –
использовать AJAX, если вы не хотите иметь перенаправления. Если у вас есть jQuery, зайдите на https://api.jquery.com/jquery.ajax/ else, используя собственную javascript-реализацию AJAX – vinayakj