无法使用活动记录查询删除重复记录

时间:2012-10-07 05:21:56

标签: ruby-on-rails activerecord

我有两个模型Venue和Venue_type.Each Venue有很多场地类型,如

体育场,酒吧,大厅,未分类等。我想删除场地表中的所有行

列在其中一个类别中,也列在未分类下。基本上我不

希望该特定地点出现在未分类标签中,因为它已经有一个类别。我

我正在使用rails 2.3.4。我试过这个,但它不起作用:

  

uncategorized = VenueType.get_by_label(“Uncategorized”)

     

vs.each {| V |将v放入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 个答案:

答案 0 :(得分: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

虽然我无法给出确切的答案,因为我看不到所有的代码。