jquery - 结合 Ruby on Rails、jQuery、AJAX 和 Embedly API

标签 jquery ruby-on-rails ruby ajax embed

我无法理解如何导航所有这些语言/服务的组合: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 View ,对应于新操作。它包括用户提交链接的表单,以及应嵌入视频的 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>

但是,视频未嵌入。为什么是这样?我是否需要在我的视频 Controller 中的创建方法中添加类似 format.js 的东西,然后添加一个 create.js.erb 文件?如果是这样,该文件中应包含哪些内容?让我知道是否应该发布更多代码。

最佳答案

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

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

选项:

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

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

关于jquery - 结合 Ruby on Rails、jQuery、AJAX 和 Embedly API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5287864/

相关文章:

ruby-on-rails - 我在哪里可以将 Swagger-UI 放在带有 Grape 的 Rails 应用程序中?

ruby - 散列成分组数组

ruby-on-rails - Ruby on Rails 捆绑命令不起作用

ajax - 按顺序进行 jQuery ajax 调用

javascript - css背景在div高度重置时重复

javascript - 如何让 xpages 模式触发关闭事件

javascript - 如何在 jQuery 中正确声明变量

ruby-on-rails - 如何从Rails中的日期时间中删除毫秒?

ruby-on-rails - 在 Passenger Rails 应用程序中包含 ~/opt/lib 库

ruby - 生成具有加权概率的随机数 - 'Distribution' gem