gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 05:33:40 25 4
gpt4 key购买 nike

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

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

在 View 中我只是显示它:(在 Haml 中)
- @page_title = 'Video'

#videos
%ul
= list_of(@videos) do |video|
%h1= video.title
!= video.link
= link_to "Delete", video_path(video), :method => :delete

= link_to "Add new video", new_video_path

%p#top
= link_to 'Go to top ↑', '#'

对于不使用 Haml 的人, !=转义字符串。 video.link保存 YouTube 嵌入代码

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

我在网络检查器中看到 src iframe 中缺少属性(这就是不显示视频的原因)。但是当我查看页面源时,那里一切正常。所以,认为这可能是 Javascript 的错,我尝试禁用它。但什么都没有改变。

最佳答案

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

video.link.html_safe

注意:如果用户在链接中粘贴,这是非常不安全的。

更新 --- 如果你打开了 javascript 开发控制台,你会看到这个错误弹出:
**Refused to execute a JavaScript script. Source code of script found within request.**

查看 this answer for why it's refusing to due XSS这是一种既安全又有效的方法。您将在文本字段中粘贴 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 %>

home_controller.rb
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

关于ruby-on-rails - Youtube 嵌入链接未在 Rails 中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9038796/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com