Объединение Ruby on Rails, jQuery, AJAX и API Embedly - PullRequest
2 голосов
/ 13 марта 2011

Мне сложно понять, как ориентироваться в комбинации всех этих языков / сервисов: Ruby on Rails, jQuery, AJAX и Embedly API

По сути, я хочу создать приложение, котороепозволяет пользователю вводить URL-адрес видео в текстовое поле, а затем использовать API-интерфейс embedly-jQuery, чтобы извлечь эскиз и вернуть его с помощью ajax.Затем, когда пользователь нажимает на миниатюру, миниатюра скрывается и появляется встроенное видео.

Вот код в моем файле application.js.Насколько я понимаю, этот код встраивает видео в элемент #video_div.Кроме того, я не уверен, смогу ли я использовать переменную @video.video_url в моем файле application.js:

$(document).ready(function() {

$.embedly('#{@video.video_url}',
           {maxWidth: 600,
               elems: $('#video_div'),
             success: function(oembed, dict){
                        alert(oembed.title);
                      });
      });

Вот мое представление new, соответствующее новому действию.Он включает в себя форму, на которую пользователь отправляет ссылку, а также div с идентификатором video_id, в который должно быть вставлено видео.

<%= form_for(@video) do |f| %>
  <% if @video.errors.any? %>
    <div id="errorExplanation">
      <h2><%= pluralize(@video.errors.count, "error") %> prohibited this video from being saved:</h2>

      <ul>
      <% @video.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>
  <div class="field">
    <%= f.label :video_url %><br />
    <%= f.text_field :video_url %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

<div id="video_div"></div>

Однако видео не встроено.Почему это?Нужно ли мне добавить что-то вроде format.js в метод create в моем видеоконтроллере, а затем добавить файл create.js.erb?Если так, что должно войти в этот файл?Дайте мне знать, если я должен опубликовать больше кода.

1 Ответ

0 голосов
/ 13 марта 2011

Нет, у вас нет доступа к @ video.video_url в файле javascript. Это файл на стороне клиента.

Чтобы получить к нему доступ, вам понадобится шаблонизатор rails erb (или haml и т. Д.), Который работает на стороне сервера.

Параметры:

  1. Переместите весь код javascript в файл .erb для непосредственного использования #ndom@video.video_url}

  2. Передача информации о URL-адресе видео при загрузке функций JavaScript

...