gpt4 book ai didi

ruby-on-rails - nil的未定义方法 `last':YouTube的NilClass嵌入rails

转载 作者:行者123 更新时间:2023-12-03 05:56:46 27 4
gpt4 key购买 nike

我正在尝试将YouTube视频嵌入到我的Rails应用中,并关注this guide:

我已经写了这个助手:

  def embed(video)
youtube_id = @page.video.try(:split, "=").last || 'blank'
content_tag(:iframe, nil, src: "//www.youtube.com/embed/#{youtube_id}")
end

我收到此错误:nil:NilClass的未定义方法“last”

这是我的看法:pages / show.html.erb
    <div class="embed-container">
<%= embed(@page.video) %>
</div>

该指南看起来很简单,所以我不确定为什么我的原始版本无法正常工作。

我原来的助手看起来像这样:
  def embed(video)
youtube_id = video.split("=").last
content_tag(:iframe, nil, src: "//www.youtube.com/embed/#{youtube_id}")
end

但是它抛出了另一个错误:nil:NilClass 的 未定义方法“split”

went here,发现我认为可能是一种解决方案,但这导致了上面的新错误。我还尝试添加@ page.video.split而不是仅仅添加视频,因为它是特定页面的显示 View ,但是我不确定这会有什么不同。

关于如何使它起作用的任何建议?

最佳答案

您正在访问帮助器中的@page实例变量,但同时也将其作为参数发送。

def embed(video)
youtube_id = video.try(:split, "=").last || 'blank'
content_tag(:iframe, nil, src: "//www.youtube.com/embed/#{youtube_id}")
end

<div class="embed-container">
<%= embed(@page.video) %>
</div>

话虽这么说,问题是您的 @page.video返回的是 nil而不是我猜的视频URL字符串...确保 @page.video返回的内容。

关于ruby-on-rails - nil的未定义方法 `last':YouTube的NilClass嵌入rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36600988/

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