【问题标题】:How to display a youtube embed link that is called from database如何显示从数据库调用的 youtube 嵌入链接
【发布时间】:2014-09-16 04:41:41
【问题描述】:

我有一个应用程序想用于我的教学工作室,我可以在其中创建学生可以查看的课程。这些课程是针对每个学生的,因此它们通过一个 :user_id 链接(用户 has_many 课程,课程属于用户)。我可以根据它是哪个用户提出具体的课程,但我无法弄清楚的一部分是如何让视频(youtube)链接正确显示。我想要的是将链接与课程文本一起保存。文本和标题以及所有内容现在都很好,但视频不会显示嵌入代码并在 iframe 窗口中引发路由错误。

这是我的 _lesson 部分代码。 “video_url”是数据库中列的名称。

_lesson.html.erb

<li>
  <span class="content"> 
    <%= lesson.title %><br />
    <%= lesson.lesson_notes %>
     <iframe width="490" height="275" src="<%= lesson.video_url %>" frameborder="0"  allowfullscreen></iframe>
  </span>
</li>

这是我的显示视图中的代码。

show.html.erb

<% if @user.lessons.any? %>
 <h3> Lessons (<%= @user.lessons.count %>)</h3>
<ol class="lessons">
  <%= render @lessons %>
</ol>
  <%= will_paginate @lessons %>
<% end %>

我得到的错误如下

  No route matches [GET] "/users/www.youtube.com/embed/CFF0mV24WCY"

我有点明白发生了什么,但不是真的。我想我不确定它为什么要寻找那条路线,而不是仅仅嵌入代码然后显示视频。它会显示课程中的所有其他文本和内容,因此效果很好。是否有一种简单的方法来显示链接,以便将视频与它一起嵌入?我已经搜索了很多,但我发现的所有内容都只是将代码嵌入到我可以做的 html 中,但这需要根据用户进行更改,因此必须与课程信息的其余部分一起从数据库中提取.任何帮助将不胜感激。

【问题讨论】:

    标签: ruby-on-rails-4 youtube


    【解决方案1】:

    src 需要知道协议,因此如果您不包含http://,则资源管理器会假定给定的src 在您的实际路径旁边。
    一个糟糕的解决方案可能是使用原始字符串添加协议:

    src="http://<%= lesson.video_url %>"
    

    但更好的解决方案是 adding a filter 在保存字段时检查是否包含协议。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-30
      • 2012-02-20
      • 2015-10-01
      • 2016-01-16
      • 1970-01-01
      • 1970-01-01
      • 2010-12-11
      • 2013-06-29
      相关资源
      最近更新 更多