3

Venue と Venue_type の 2 つのモデルがあります。各 Venue には、次のような多くの会場タイプがあります。

スタジアム、バー、ホール、未分類など会場テーブルからすべての行を削除したい

これらのカテゴリのいずれかにリストされており、未分類の下にもリストされています。

すでにカテゴリがあるため、その特定の会場を未分類のラベルに表示したい.

Rails 2.3.4を使用しています。これを試しましたが、機能しません:

uncategorized = VenueType.get_by_label("未分類")

対それぞれ{|v| v.venue_types.size>1 と v.venue_types.collect(&:id}.include(uncategorized.id)} に v を入れます

v.破壊せよ!

次の 2 つのモデルがあります。

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 に答える