0

私のDBには、さまざまな都市名のリストがたくさんあります。このデータベースに都市名=Xのリストのみを保持し、他のすべての都市を削除しようとしています。

次のアクティブレコードクエリを試しています:

@unwanted_cities = Listing.where('city not in (?)', Listing.where('city = ?', "X"));

しかし、私はこのエラーを取得しています

ActiveRecord::StatementInvalid in Unwanted_cities#index

Showing /Users/AM/Documents/RailsWS/app0521/app/views/unwanted_cities/index.html.erb where     line #31 raised:

PG::Error: ERROR:  operator does not exist: character varying <> integer
LINE 1: SELECT "listings".* FROM "listings"  WHERE (city not in (4,1...
                                                     ^
HINT:  No operator matches the given name and argument type(s). You might need to add  explicit type casts.
: SELECT "listings".* FROM "listings"  WHERE (city not in         (4,10,13,17,18,19,21,23,26,28,29,31,36,39,46,48,49,52,90,97,101,103,105,108,109,111,115,94,5      ,219..............))

私は何が間違っているのですか?

4

1 に答える 1

1

@unwanted_cities = Listing.where('city != ?', "X")

私が読んでいることが正しければ、「X」という名前のない都市が必要です。上記のコード行を実行すると、これらの都市を取得できます。

これらすべての都市を「削除」したい場合は、

@unwanted_cities.delete_all

また

@unwanted_cities.destroy_all

于 2012-06-30T16:07:49.047 に答える