我正在建立一个副项目的rails应用程序。我正在尝试实现的一个功能是一个text_field,用户在其中提交一个youtube链接,然后创建一个嵌入的视频显示在他们自己的页面上。当我转到/ NoMethodError /2时遇到了用户,我希望你们能帮我一个新手:
/users/show.html.erb
<h1>Users#show</h1>
<p>Find me in app/views/users/show.html.erb</p>
<%= render partial: 'shared/track_form' %>views/shared/_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我有一个跟踪控制器,但我认为它正在尝试使用用户控制器。
更多的代码或信息,你需要让我知道,谢谢。
发布于 2013-06-05 17:13:58
你面临着什么问题??如果您的问题只与NoMethodError有关,那么请让我知道更多细节,比如它何时发生以及错误报告,即控制台部分。
如果你的问题出在youtube part上,这就是你的答案:
<iframe width='450' height='250' src='youtube_source' frameborder='0' allowfullscreen></iframe> 在视图部件中输入以下代码,并用您的youtube_url替换youtube_source
如果您直接从url区域使用youtube url,那么您必须对url进行一些自定义。
例如。
来自url区域的普通youtube url:
http://www.youtube.com/watch?v=h5euwZEE4Mo在iframe标签中,我们需要这样的url:
http://www.youtube.com/embed/h5euwZEE4Mo您可以在这两个链接(embed和watch?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>https://stackoverflow.com/questions/16927985
复制相似问题