【问题标题】:Combining Ruby on Rails, jQuery, AJAX, and the Embedly API结合 Ruby on Rails、jQuery、AJAX 和 Embedly API
【发布时间】:2011-07-14 08:35:14
【问题描述】:

我无法理解如何浏览所有这些语言/服务的组合:Ruby on Rails、jQuery、AJAX 和 Embedly API

基本上我想要构建的是一个应用程序,它允许用户将视频 url 输入到文本字段中,然后使用 embedly-jQuery api 检索缩略图并使用 ajax 返回它。然后当用户点击缩略图时,缩略图隐藏,嵌入视频出现。

这是我的 application.js 文件中的代码。据我了解,此代码将视频嵌入到 #video_div 元素中。另外,我不确定是否可以在 application.js 文件中使用 @video.video_url 变量:

$(document).ready(function() {

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

这是我的new 视图,对应于新操作。它包括用户提交链接的表单,以及应该嵌入视频的 id video_id 的 div。

<%= 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>

但是,视频并未嵌入。为什么是这样?我是否需要在我的视频控制器的 create 方法中添加类似 format.js 的内容,然后添加一个 create.js.erb 文件?如果是这样,这个文件应该包含什么?如果我应该发布更多代码,请告诉我。

【问题讨论】:

    标签: jquery ruby-on-rails ruby ajax embed


    【解决方案1】:

    不,您无权访问 javascript 文件中的 @video.video_url。那是一个客户端文件。

    要这样访问它,您需要使用在服务器端运行的 rails erb(或 haml 等)模板引擎。

    选项:

    1. 将所有 javascript 代码移动到 .erb 文件中以直接使用#{@video.video_url}

    2. 在加载 javascript 函数时传递有关视频 URL 的信息

    【讨论】:

    • 加载js函数时如何传递视频URL的信息?我把它存储在数据库中。
    • 哦,可能是一个 CSS 选择器,但是那个 javascript 代码会是什么样子呢?我可能需要在#video_div 元素中添加&lt;%= link_to 'video', @video.video_url %&gt;
    • 在这种情况下,将您的 javascript 代码放入 erb 文件中,容易得多
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-18
    • 2013-04-17
    • 1970-01-01
    • 2016-02-21
    • 2012-08-25
    • 1970-01-01
    相关资源
    最近更新 更多