3

我有两个模型 Venue 和 Venue_type。每个 Venue 都有许多场地类型,例如

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

列在这些类别之一中,也列在未分类下。基本上我不

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

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

未分类 = VenueType.get_by_label("未分类")

与每个{|v| 将 v 放入 v.venue_types.size>1 和 v.venue_types.collect(&:id}.include(uncategorized.id)}

v.毁灭!

这是两个模型:

class Venue < ActiveRecord::Base
has_and_belongs_to_many:venue_types
end

class Venuetype < ActiveRecord::Base
has_and_belongs_to_many:venues
end
4

1 回答 1

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

虽然我不能给你一个确切的答案,因为我看不到所有的代码。

于 2012-10-07T07:15:51.413 回答