Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Youtube嵌入链接未在Rails中显示_Ruby On Rails_Iframe_Youtube_Embed - Fatal编程技术网

Ruby on rails Youtube嵌入链接未在Rails中显示

Ruby on rails Youtube嵌入链接未在Rails中显示,ruby-on-rails,iframe,youtube,embed,Ruby On Rails,Iframe,Youtube,Embed,我正在为youtube视频制作资源丰富的路线。因此,一个人只需将youtube嵌入链接粘贴到表单中。在控制器中,我有一组正常的足智多谋的操作: class VideosController < ApplicationController def index @videos = Video.all end def new @video = Video.new end def create Video.create(params[:video])

我正在为youtube视频制作资源丰富的路线。因此,一个人只需将youtube嵌入链接粘贴到表单中。在控制器中,我有一组正常的足智多谋的操作:

class VideosController < ApplicationController
  def index
    @videos = Video.all
  end

  def new
    @video = Video.new
  end

  def create
    Video.create(params[:video])
    redirect_to :action => :index
  end

  def destroy
    Video.destroy(params[:id])
    redirect_to :action => :index
  end
end
对于不使用Haml的用户,
=转义字符串<代码>视频.链接
保存YouTube嵌入代码

问题是,当我创建一个新视频时,当它将我重定向回索引页时,新创建的视频不会显示(其他视频通常会显示)。只有在我刷新页面后,它才会正常显示


我在web inspector中看到
src
属性在
iframe
中丢失(这就是视频不显示的原因)。但是当我查看页面源代码时,那里的一切都是正常的。所以,考虑到这可能是Javascript的错,我尝试禁用它。但一切都没有改变。

我不认为你想用哈姆来逃避它。。。我想你想打电话

video.link.html_safe
注意:如果用户正在粘贴链接,这是非常不安全的

更新——如果打开javascript开发控制台,您会看到弹出的错误:

**Refused to execute a JavaScript script. Source code of script found within request.**
检查这里有一种既安全又有效的方法。您将在文本字段中粘贴youtube ID:ibWYROwadYs

index.erb

<% if session[:youtube].present? %>
  <iframe width="480" height="360" src="http://www.youtube.com/embed/<%=session[:youtube]%>" frameborder="0" allowfullscreen></iframe>
<% end %>

<%= form_tag load_path do %>
  <%= text_field_tag :youtube_id %>
  <%= submit_tag "Submit" %>
<% end %>

<%= link_to "Clear", clear_path, :method => :delete %>
class HomeController < ApplicationController
  def index
  end

  def smth
    session[:youtube] = params[:youtube_id]
    redirect_to :action => :index
  end

  def clear
    session.clear
    redirect_to :action => :index
  end
end

:删除%>
home\u controller.rb

<% if session[:youtube].present? %>
  <iframe width="480" height="360" src="http://www.youtube.com/embed/<%=session[:youtube]%>" frameborder="0" allowfullscreen></iframe>
<% end %>

<%= form_tag load_path do %>
  <%= text_field_tag :youtube_id %>
  <%= submit_tag "Submit" %>
<% end %>

<%= link_to "Clear", clear_path, :method => :delete %>
class HomeController < ApplicationController
  def index
  end

  def smth
    session[:youtube] = params[:youtube_id]
    redirect_to :action => :index
  end

  def clear
    session.clear
    redirect_to :action => :index
  end
end
class HomeController:index
结束
def清除
会话。清除
将_重定向到:action=>:index
结束
结束

我认为你不想用haml来逃避它。。。我想你想打电话

video.link.html_safe
注意:如果用户正在粘贴链接,这是非常不安全的

更新——如果打开javascript开发控制台,您会看到弹出的错误:

**Refused to execute a JavaScript script. Source code of script found within request.**
检查这里有一种既安全又有效的方法。您将在文本字段中粘贴youtube ID:ibWYROwadYs

index.erb

<% if session[:youtube].present? %>
  <iframe width="480" height="360" src="http://www.youtube.com/embed/<%=session[:youtube]%>" frameborder="0" allowfullscreen></iframe>
<% end %>

<%= form_tag load_path do %>
  <%= text_field_tag :youtube_id %>
  <%= submit_tag "Submit" %>
<% end %>

<%= link_to "Clear", clear_path, :method => :delete %>
class HomeController < ApplicationController
  def index
  end

  def smth
    session[:youtube] = params[:youtube_id]
    redirect_to :action => :index
  end

  def clear
    session.clear
    redirect_to :action => :index
  end
end

:删除%>
home\u controller.rb

<% if session[:youtube].present? %>
  <iframe width="480" height="360" src="http://www.youtube.com/embed/<%=session[:youtube]%>" frameborder="0" allowfullscreen></iframe>
<% end %>

<%= form_tag load_path do %>
  <%= text_field_tag :youtube_id %>
  <%= submit_tag "Submit" %>
<% end %>

<%= link_to "Clear", clear_path, :method => :delete %>
class HomeController < ApplicationController
  def index
  end

  def smth
    session[:youtube] = params[:youtube_id]
    redirect_to :action => :index
  end

  def clear
    session.clear
    redirect_to :action => :index
  end
end
class HomeController:index
结束
def清除
会话。清除
将_重定向到:action=>:index
结束
结束

您编写了
,我只是在视图中显示它。
——但这就是一切。。。请为您正在使用的iframe或javascript小部件添加视图代码当您被重定向到#index时,是否显示标题和/或删除链接?此外,是否有任何后台处理会在创建记录后更新记录?是否
video.link
iframe代码?您仍然没有显示正在使用的iframe代码…所有链接都显示出来。不,没有后台进程(只有一个管理员,所以我认为没有必要)。关于
video.link
,是的,它有一个YouTube嵌入链接,例如
你写的
,我只是在视图中显示它。
——但这就是一切。。。请为您正在使用的iframe或javascript小部件添加视图代码当您被重定向到#index时,是否显示标题和/或删除链接?此外,是否有任何后台处理会在创建记录后更新记录?是否
video.link
iframe代码?您仍然没有显示正在使用的iframe代码…所有链接都显示出来。不,没有后台进程(只有一个管理员,所以我认为没有必要)。关于
video.link
,是的,它有一个YouTube嵌入链接,例如
谢谢,我会记住的。我不担心安全性,因为只有管理员才能访问此文件。我正在为那个人制作网站,所以我只是在做一个基本的CMS。它不起作用。对不起,我忘了我必须告诉你,而不是不接受。你能
=debug video.link
??这将告诉您链接是否存储在数据库中。是的,它存储在数据库中(我提到,在重定向到该链接后刷新#索引时,它会出现)。如果我输入自定义文本而不是YouTube嵌入链接,则不会出现问题。我百分之百肯定这和它是一个iframe有关。哇,我只是试着用最简单的方法重现这个问题,制作一个新的rails项目,添加一个“home”控制器,只修改代码(在ERB中做了,以防万一),但仍然存在这个错误。试着做类似的事情,你也会得到同样的结果。我刚刚发现了一些有趣的事情。如果我使用一个简单的操作链接而不是表单,将youtube嵌入链接放入会话中,则不会出现此问题。谢谢,我会记住这一点。我不担心安全性,因为只有管理员才能访问此文件。我正在为那个人制作网站,所以我只是在做一个基本的CMS。它不起作用。对不起,我忘了我必须告诉你,而不是不接受。你能
=debug video.link
??这将告诉您链接是否存储在数据库中。是的,它存储在数据库中(我提到,在重定向到该链接后刷新#索引时,它会出现)。如果我输入自定义文本而不是YouTube嵌入链接,则不会出现问题。我百分之百肯定这和它是一个iframe有关。哇,我只是试着用最简单的方法重现这个问题,制作一个新的rails项目,添加一个“home”控制器,只修改代码(在ERB中做了,以防万一),但仍然存在这个错误。试着做类似的事情,你也会得到同样的结果。我刚刚发现了一些有趣的事情。如果我使用一个简单的操作链接而不是表单,将youtube嵌入链接放入会话中,那么这个问题就不会发生。