2013-05-19 83 views
0

我是Rails的新手,我正在嘗試爲Youtube創建一個簡單的客戶端。我使用Youtube_it寶石來檢索我的其中一個播放列表中的所有視頻和我使用的代碼:另一個未定義的方法`model_name'爲項目:類

控制器:

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

錯誤在哪裏以及如何發生? – Sun

回答

0

雖然您已經定義了添加所需方法的模塊,但您的問題中沒有代碼顯示如何將該模塊添加到播放列表類。我不熟悉YouTubeIt gem,所以我不能確定你會如何做到這一點,但是,例如,如果您想將該模塊添加到內置的字符串類中,您可以這樣做:

class String 
    include BasePlaylist 
end 
+0

我有這樣的代碼:@ playlist.extend(BasePlaylist),做了類似的事情 – Randomize

相關問題