複数のデータベース エントリを処理しようとしています。サイトからデータを廃棄していましたが、既に作成された現在のデータに対するチェックを誰かが書き忘れていました。現在、約12,000件のエントリーがあります。
各エントリを調べて、重複しているものを削除しようとしています。これは私がこれまでに持っているものです:
for Listing.each(:order => "street_address DESC") do |listing|
if listing.scraped == true
if previous_street_address && listing.street_address == previous_street_address
listing.delete
end
end
previous_street_address = listing.street_address
end
これはデータベース スキーマです。
create_table "listings", :force => true do |t|
t.integer "category"
t.string "street_address"
t.string "city"
t.string "state"
t.datetime "availability"
t.integer "bedrooms"
t.integer "bathrooms"
t.integer "square_footage"
t.string "short_description"
t.text "long_description"
t.integer "price"
t.integer "period"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.integer "landlord_id"
t.float "latitude"
t.float "longitude"
t.datetime "expires_at"
t.boolean "warned_of_expiration"
t.integer "views", :default => 0, :null => false
t.boolean "fake"
t.string "short_web_url"
t.string "apartment_no"
t.string "zipcode"
t.datetime "delisted_at"
t.integer "daily_rate"
t.integer "photos_count"
t.string "delisted_reason"
t.boolean "scraped"
t.boolean "cats", :default => false
t.boolean "dogs", :default => false
end
データを意味のある方法で並べ替える必要があることはわかっていますが、住所が「123 Anywhere Street」であるかのようにStreet Addressが機能するとは思いません.Listing.street_address.to_iは、それを123に変換してから、それらの番号で並べ替えますこれは問題を引き起こす可能性があります。私はこの問題について新鮮な目を探しています。