2016-04-15 7 views
0

私のレール4アプリにユーザーモデルがあります。Rails 4 - destroy_allの後にインデックスレコードが残るのはなぜですか?

私は私のコンソールに行ってと行っている:

User.destroy_all 

User.countには、ユーザーが存在しないことを私に確認します。私はその後、私が行うことにさせて頂くれ、再びサインアップしようとするが、私は私の電子メールを確認してサインインしようと、私が言うのエラーが表示されます。

ように、私は、このインデックスレコードを修正するにはどうすればよい
ERROR: duplicate key value violates unique constraint "index_users_on_email" 
DETAIL: Key (email)=([email protected]) already exists. 

User.destroy_allメソッドの実行時にも削除されますか?

+0

の詳細? – uzaif

+0

psqlデータベース.. – Mel

+0

それはシーケンスのためです。あなたのテーブルスケープをリセットしてください。 "ALTER SEQUENCE" your_sequence_name "0 ;; – uzaif

答えて

0

この問題が発生しないように、ユーザーを破棄するには関連するすべてのデータを削除してください。

class UpdateUserForeignKey < ActiveRecord::Migration 
    def change 
    remove_foreign_key :users, :email 

    add_foreign_key :users, :email, on_delete: :cascade 
    end 
end 

使用しているデータベースのRails外部キー http://apidock.com/rails/ActiveRecord/ConnectionAdapters/SchemaStatements/add_foreign_key

+0

こんにちはVlad。多分私たちのワイヤーが交差していると思います。私はコンソールを使用して、ユーザーテーブルのすべてのレコードを破棄しようとしました。私はテーブルが空であると予想している間に何かが保存されているので、何かが保持されていることを示す上のエラーが出ます。私は、テーブルを変更するための移行を書いたくありません。 – Mel

関連する問題