我无法理解如何导航所有这些语言/服务的组合: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 等)模板引擎。
选项:
将所有javascript代码移动到.erb文件中,直接使用#{@video.video_url}
加载 javascript 函数时传递有关视频 URL 的信息
关于jquery - 结合 Ruby on Rails、jQuery、AJAX 和 Embedly API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5287864/