質問: ActiveAdminとDevise 2を使用して、以下のモデル設計をどのように達成できますか?ActiveAdmin、既存の(しかし裸の)Devise 2のユーザーモデルが動作しない
私は、既存のUser
モデルを使用してactive_adminを正常にセットアップしました。
私はこのモデル設計の意味( "管理者にユーザーを管理させる")と仮定しました。ここで
は私の現在のモデルが設定されている:
irb(main):003:0> User.column_names
=> ["id", "created_at", "updated_at", "avatar", "name"]
irb(main):004:0> AdminUser.column_names
=> ["id", "email", "encrypted_password", "reset_password_token", "reset_password_sent_at", "remember_created_at", "sign_in_count", "current_sign_in_at", "last_sign_in_at", "current_sign_in_ip", "last_sign_in_ip", "created_at", "updated_at"]
今、私は私のUserモデルのためのいくつかのauthenticatonを追加したいと思います。しかし、私はこの競合なしrails generate devise User
の結果を移行することができません:
== AddDeviseToUsers: migrating ===============================================
-- change_table(:users)
-> 0.7201s
-- add_index(:users, :email, {:unique=>true})
rake aborted!
An error has occurred, this and all later migrations canceled:
PG::Error: ERROR: could not create unique index "index_users_on_email"
DETAIL: Key (email)=() is duplicated.
: CREATE UNIQUE INDEX "index_users_on_email" ON "users" ("email")
Tasks: TOP => db:migrate
今、私は私の現在のUserモデルにemail
属性を持っていないが、ADMINUSERはありません。だから、DeviseがUser
に電子メール属性を作成しようとすると、これが私がこのエラーに遭う理由です。しかし、なぜ?彼らは別のモデルにありますか?
経験、柱やチュートリアル、移行には成功し、(同様の回答)
NOTE私は工夫のwikiとhereで見つかったソリューションを試してみましたをいただければ幸いです。
ありがとうございます。 – rhodee
私は同じ問題を抱えていました。しかし、私は電子メール、文字列、:null => false、デフォルト=> ""のような列をdevise wikiで述べたように変更しました。それはデータ型ではないので、私はそれを単にマイグレーションファイルのインデックスにコメントし、マイグレーションと成功したマイグレーションの後、それらのコメントを外していたので、トリックを見つけることができませんでした。 – Means