0

我正在构建一个侧面项目 rails 应用程序。我正在尝试实现的一个功能是 text_field ,用户可以在其中提交 youtube 链接,并创建一个嵌入视频以显示在他们自己的页面上。当我转到 /users/2 时,我遇到了 NoMethodError,我希望你们可以帮助新手:

/users/show.html.erb

<h1>Users#show</h1>
<p>Find me in app/views/users/show.html.erb</p>

<%= render partial: 'shared/track_form' %>

意见/共享/_track_form.html.erb:

<%= form_for(@track) do |f| %>
<div class="field">
    <%= f.text_area :content, placeholder: "Upload a youtube song URL..." %>
</div>
<%= f.submit "Post", class: "btn btn-large btn-primary" %>

错误:undefined method 'model_name' for NilClass:Class

轨道.rb

class Track < ActiveRecord::Base
  attr_accessible :content
  belongs_to :user

  validates :content, presence: true
end

我有一个轨道控制器,但我认为它正在尝试使用用户控制器..

更多您需要的代码或信息让我知道,谢谢。

4

1 回答 1

1

你面临什么问题??如果您的问题仅与NoMethodError有关,请让我知道更多详细信息,例如它何时发生和错误报告,即控制台部分。

如果您的问题与 youtube 部分有关,那么这就是您的答案:

<iframe width='450' height='250' src='youtube_source' frameborder='0' allowfullscreen></iframe> 

在您的视图部分输入此代码并将 youtube_source 替换为您的 youtube_url

如果您直接从 url 区域使用 youtube url,那么您必须对 url 进行一些自定义。

例如

来自 url 区域的普通 youtube url:

http://www.youtube.com/watch?v=h5euwZEE4Mo

在 iframe 标签中,我们需要这样的 url:

http://www.youtube.com/embed/h5euwZEE4Mo

您可以在两个链接中看到差异(嵌入和观看?v)

基本上一件事是两个链接中的骗子,即末尾的代码h5euwZEE4Mo。因此,您需要从 url 中提取此代码,以便提取代码,您可以使用它。

video_url = (/([\w-]{11})/.match(url)).to_s

然后你可以在 iframe 链接中使用这个 url。

<iframe width='450' height='250' src='http://www.youtube.com/embed/<%=video_url%>' frameborder='0' allowfullscreen></iframe>
于 2013-06-05T09:13:58.337 回答