我是Rails的新手,我想要做的是为Youtube创建一个简单的客户端。我正在使用Youtube_it gem来检索我的某个播放列表中的所有视频,并且我正在使用该代码:
控制器:
class PlaylistsController < ApplicationController
def show
client = session[:client]
@playlist = client.playlist(params[:id])
@playlist.extend(BasePlaylist)
end
end
扩展Youtube_it / Playlist.class的模块:
module BasePlaylist
extend ActiveModel::Naming
include ActiveModel::Conversion
def model_name
'Playlist'
end
def persisted?
false
end
end
播放列表/ show.html.erb:
<h1><%= @playlist.title %></h1>
<%= render 'form' %>
播放列表/ _form.html.erb:
<%= form_for(@playlist) do |f| %>
<% @playlist.videos.each do |video| %>
<div class="field">
<%= f.check_box_tag video.title %>
<%= f.label video.title %>
</div>
<% end %>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
我得到的是:
undefined method `model_name' for YouTubeIt::Model::Playlist:Class
我上面所做的是尝试“包装”播放列表对象,但它看起来不起作用。有什么想法吗?
答案 0 :(得分:0)
虽然您已经定义了一个添加所需方法的模块,但问题中没有任何代码显示该模块是如何添加到播放列表类的。我不熟悉YouTubeIt gem,所以我不能肯定你是怎么做的,但是如果你想将该模块添加到内置字符串类中,你会这样做:< / p>
class String
include BasePlaylist
end