我正在构建一个侧面项目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
track.rb
class Track < ActiveRecord::Base
attr_accessible :content
belongs_to :user
validates :content, presence: true
end
我有一个音轨控制器,但我认为它正在尝试使用用户控制器..
您需要的代码或信息让我知道,谢谢。
答案 0 :(得分:1)
你面临什么问题? 如果您的问题仅与 NoMethodError 有关,请告诉我更多详细信息,例如其发生时和错误报告,即控制台部分。
如果您的问题出在youtube部分,那么这就是您的答案:
<iframe width='450' height='250' src='youtube_source' frameborder='0' allowfullscreen></iframe>
在您的视图部分中输入此代码,并将youtube_source替换为youtube_url
如果您直接从网址区域使用youtube网址,则必须使用网址进行一些自定义。
E.g。
来自网址区域的普通youtube网址:
http://www.youtube.com/watch?v=h5euwZEE4Mo
在iframe标签中,我们需要这样的网址:
http://www.youtube.com/embed/h5euwZEE4Mo
您可以看到两个链接的差异(嵌入和观看?v)
基本上有一点是两个链接中的conman,即末尾的代码 h5euwZEE4Mo 。 因此,您需要从url中提取此代码,以便提取可以使用此代码的代码。
video_url = (/([\w-]{11})/.match(url)).to_s
然后你可以在iframe链接中使用这个网址。
<iframe width='450' height='250' src='http://www.youtube.com/embed/<%=video_url%>' frameborder='0' allowfullscreen></iframe>