我有两个模型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
答案 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
虽然我无法给出确切的答案,因为我看不到所有的代码。