nil:NilClass 的未定义方法`last' for youtube embed in rails
undefined method `last' for nil:NilClass for youtube embed in rails
我正在尝试在我的 rails 应用程序中嵌入一个 YouTube 视频,并且正在关注 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
但它引发了另一个错误:undefined method `split' for nil:NilClass
我 went here 发现我认为可能是一个解决方案,但它导致了上面的新错误。我还尝试添加 @page.video.split 而不仅仅是视频,因为它是特定页面的显示视图,但我不确定这是否有所不同。
关于如何让它工作有什么建议吗?
您正在访问助手中的 @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
returns 某事。
我正在尝试在我的 rails 应用程序中嵌入一个 YouTube 视频,并且正在关注 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
但它引发了另一个错误:undefined method `split' for nil:NilClass
我 went here 发现我认为可能是一个解决方案,但它导致了上面的新错误。我还尝试添加 @page.video.split 而不仅仅是视频,因为它是特定页面的显示视图,但我不确定这是否有所不同。
关于如何让它工作有什么建议吗?
您正在访问助手中的 @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
returns 某事。