2013-04-09 34 views
0

我有這個列表應該顯示一個類別內的所有活動,它有點作品,但顯示的最後一個元素是奇怪的。有在DB 4個活動這個特殊的類別,並在列表的最後我得到一個項目/categories/1/activities由於軌道循環方法.each循環結束時的空項目

%table.catlist 
    - @category.activities.each do |activity| 
    %tr{:class => cycle('one','two')} 
     %td= link_to activity.name, [@category, activity] 
     %td   

我也試過:

link_to activity.name, category_activity_path(:category_id => @category.id, :id => activity.id) 

但是,這不工作,並給我這個錯誤:

No route matches {:category_id=>1, :action=>"show", :controller=>"activities", :id=>nil} 

的路由嵌套這樣的:

resources :categories do 
    resources :activities do 
     resources :records 
    end 
    end 

它實際上顯示了一切正確,但它關閉了這個奇怪的元素,這基本上是活動路徑,但沒有一個id。

編輯

我想,這是因爲被認爲CSS類之間切換cycle方法的發生。任何想法如何可以避免空行?

回答

2

您最有可能在您的控制器中構建一項新活動,該活動包含在@category的活動列表中。如果你在你的控制器下面的代碼,

@activity = @category.activities.build 

嘗試改變它

@activity = Activity.new category_id: @category.id 

或在視圖中,只顯示添加檢查持續活動。

- @category.activities.each do |activity| 
    - next if activity.new_record? 
    %tr{:class => cycle('one','two')} 
    %td= link_to activity.name, [@category, activity] 
    %td   
+0

我不認爲這是它,基本上我在我的控制器中的唯一的事情就是'@Category = Category.find(PARAMS [:編號])'和format_to塊 – networkprofile 2013-04-09 01:46:20

+0

可以嘗試最後一個代碼?我很確定你有一個活動是一個新的記錄,這就是爲什麼你會得到這個錯誤。 – jvnill 2013-04-09 01:48:16

+0

這確實解決了它。奇怪的是,我真的不知道新紀錄的創建地點 – networkprofile 2013-04-09 10:11:07