2012-10-07 79 views
3

重複的記錄,我有兩個型號場館和Venue_type.Each地點有許多場地類型,如無法刪除使用活動記錄查詢

體育場,酒吧,音樂廳,未歸類etc.I要刪除所有來自會場的行這

在這些類別之一列出,也uncategorized.Basically下面列出我不

表需要特定的場所,出現在未分類的標籤,因爲它已經有一個category.I

使用Rails我2.3.4。我試過,但它不工作:

未歸類= VenueType.get_by_label( 「未分類」)

vs.each {| V |把V IN v.venue_types.size> 1個v.venue_types.collect(&:ID} .INCLUDE(uncategorized.id)}

v.destroy

這是兩種模式:

class Venue < ActiveRecord::Base 
has_and_belongs_to_many:venue_types 
end 

class Venuetype < ActiveRecord::Base 
has_and_belongs_to_many:venues 
end 

回答

1

您沒有給我足夠的信息來修復所有的問題 - 但我可以告訴您,您沒有正確使用Ruby塊,因爲您試圖訪問塊之外的塊實例變量。你沒有範圍。

這裏的「語法明智」什麼工作:

uncategorized = VenueType.get_by_label("Uncategorized") 

vs.each do |v| 
    if (v in v.venue_types.size>1 and v.venue_types.collect(&:id}.include(uncategorized.id)) 
      v.destroy! 
    end 
end 

雖然我不能給你一個確切的答案,因爲我不能看到所有的代碼。

+2

這裏vs是可變的,我把所有場地的列表,即VS = Venue.find(:all),然後從那我想提取所有在多於一個類別中列出的venue_types。這就是我有使用的大小。現在我想刪除在uncategorized_vennue_type列出的數據庫中的場地表中的所有記錄,即使它有一個類別。還需要其他信息? – Anu11