2012-07-14 40 views
0

我在Ruby on Rails undefined method 'each' for 0:Fixnum中得到以下錯誤。Rails - 未定義的方法`每個'爲0:Fixnum

這裏是應用程序跟蹤:

app/controllers/videos_controller.rb:23:in `new' 
app/controllers/videos_controller.rb:23:in `create' 

我的控制器創建和新的行動:

def new 
    @video = Video.new 
    end 

    def create 
    method = 'get_' + params[:video][:provider] + '_video_id' 
    params[:video][:provider_video_id] = Video.send(method, params[:video][:url]) 
    params[:video][:thumb] = Video.get_thumb_from_youtube(params[:video][:provider_video_id]) 
    params[:video][:views] = params[:video][:likes] = 0  
    params[:video][:user_id] = current_user 
    @video = Video.new(params[:video]) 
    if @video.save 
     redirect_to video_path(@video), notice:'Video added successfully.' 
    else 
     render :new 
    end 
    end 

這裏是我的view.html.haml:

= form_for @video do |f| 
- if @video.errors.any? 
    .error_explanation 
    %h2= pluralize(@video.errors.count, "error") 
    prohibited this user from being saved: 

    %ul 
     - @video.errors.full_messages.each do |msg| 
     %li= msg 
.field 
    = f.label :title 
    = f.text_field :title 
.field 
    = f.label :description 
    = f.text_area :description 
%br 
.field 
    = f.label :url, 'URL' 
    = f.text_field :url 
%br 
.field 
    Provider 
    = radio_button :video, :provider, 'vimeo' 
    = f.label :provider, 'Vimeo', :value => 'vimeo' 
    = radio_button :video, :provider, 'youtube' 
    = f.label :provider, 'Youtube', :value => 'youtube' 
%br 
.field 
    Category 
    = collection_select(:video, :category_id, Category.all, :id, :name, :include_blank => true) 
%br 
.actions 
    = f.submit "Add video" 
+0

錯誤似乎是在'new.html。*'查看你正在渲染,請添加代碼.... – 2012-07-14 16:35:50

+0

@Rahulgarg我更新了我的代碼。 – 2012-07-14 16:43:03

+0

這是完整的堆棧跟蹤嗎?你能標記文件中的行嗎? – Reactormonk 2012-07-14 17:08:30

回答

2

params[:video][:views] = params[:video][:likes] = 0 

params[:video][:views] = 0 

我認爲video.likes是一個協會,而不是算的,所以它預計的Enumerable。如果是關聯,則rails會嘗試將您添加到likes的元素分配到video模型。添加它們的第一步是迭代 - 使用each。這是錯誤來自的地方。

+0

我無法理解這個問題,所以我開始努力解放我的思想。我在這裏的回答類似於你的彈出在我的頭!起初,我爲視頻創建了一個專欄。然後我創建了另一個模型來管理用戶喜歡(用戶只能投票一次),但忘記刪除視頻喜歡列!錯誤可能來自你解釋的!謝謝 :) – 2012-07-14 19:11:48

相關問題