【发布时间】:2012-02-20 16:48:02
【问题描述】:
问题:如何使用 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"]
现在我想为我的用户模型添加一些身份验证。但是,如果没有此冲突,我无法迁移 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 中创建电子邮件属性时,我怀疑这就是我收到此错误的原因。但为什么?它们在不同的模型中?
任何帮助,例如经验、帖子或教程将不胜感激(以及答案)
注意我已经尝试了在 Devise wiki 和 here 上找到的解决方案,但没有成功迁移。
【问题讨论】:
标签: ruby-on-rails devise activeadmin