Вызов API Embedly, не желающий работать в приложении Ruby on Rails - PullRequest
1 голос
/ 17 марта 2011

Я делаю этот вызов в своем файле application.js, но он не возвращает динамически сгенерированное встроенное видео по ссылке, которую вводит пользователь:

$("#new_video").bind('submit', function(e){
        e.preventDefault();
        var q = $(this).find('#video_video_url').val();
        if (q == '')
            return false;

        $.embedly(q, {maxWidth: 500, wrapElement: 'div' }, function(oembed, dict){
            if (oembed == null)
                $(".video").html('<p class="text"> Not A Valid URL </p>');
            else 
                $(".video").html(oembed.code);
        })
    });

Я не совсем уверен, что предполагаетсяидти туда, где 'submit', так что это может вызвать у меня проблемы.

Мой идентификатор формы, в которую пользователь вводит URL, равен #new_video, идентификатор поля #video_video_url, икласс video создается из моего видео:

<%= div_for video do %>
<% end %>

Это отображается в моем представлении index, где я хочу отобразить все встроенные видео.Это все, что есть в моем index виде, где я хочу, чтобы все видео были встроены:

<div id ='video_div'>
  <%= render @videos %>
</div>

, однако, это не работает.Нет видео встраивается.Что я делаю неправильно?Имейте в виду, что я не только хочу встраивать видео после отправки URL-адреса, но я сохраняю URL-адрес и хочу отображать внедренные видео неопределенно в будущем.

Вот HTML-код формы, которую использует браузер.видит в new представлении:

<div id="dialog" class="window" style="top: 237px; left: 435px; display: block; ">
<form accept-charset="UTF-8" action="/videos" class="new_video" id="new_video" method="post">
<div style="margin:0;padding:0;display:inline">
<input name="utf8" type="hidden" value="✓">
    <input name="authenticity_token" type="hidden" value="h/yzzD0lWsp7nc89WPmDRXWs5ahdfUc3ZvY5IukX2fQ=">
</div>
<div class="field">
   <label for="video_video_url">Video url</label><br>
   <input id="video_video_url" name="video[video_url]" size="30" type="text">
</div>
<div class="actions">
  <input id="video_submit" name="commit" type="submit" value="Create Video">
</div>
</form>
<a href="#" class="close">Cancel</a>
</div>

ОБНОВЛЕНИЕ:

Я получаю эту ошибку в консоли:

 Started GET "/jquery.embedly.js" for 127.0.0.1 at Thu Mar 17 00:09:29 -0700 2011

ActionController::RoutingError (No route matches "/jquery.embedly.js"):

 Rendered /Library/Ruby/Gems/1.8/gems/actionpack-3.0.4/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (1.1ms)

Я включаю jquery.embedly.js вхотя мой макет приложения ...

Ответы [ 2 ]

1 голос
/ 17 марта 2011

Похоже, ошибка в том, что он не загружает скрипт Embedly jQuery.Это решено?Кроме того, вы можете загрузить скрипт Embedly jQuery с нашей http://scripts.embed.ly/jquery.embedly.js страницы.

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

Как выглядит HTML?Вы уверены, что хотите использовать .val () для #video_video_url, а не html () или attr ('href')?Я думаю, что вы используете .val () для входных значений.

Из документации val () jquery: «Метод .val () в основном используется для получения значений элементов формы.»

ОБНОВЛЕНИЕ: только что увидел ваше описание, и вы сказали, что это из пользовательского ввода.Так что пренебрегай выше.Вы можете вставить HTML?

ОБНОВЛЕНИЕ # 2: это может быть проблема с загрузкой скрипта embedly.вы используете мин версию?Вы могли бы проверить, чтобы убедиться, что имя файла совпадает?Кажется, что если jquery загружается, он также должен загружаться также.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...