【发布时间】:2014-03-29 22:24:37
【问题描述】:
假设我在 Rails 4 应用程序中有以下内容:
class Person < ActiveRecord::Base
has_many :email_addresses, as: :emailable
has_one :user_account
end
class EmailAddress < ActiveRecord::Base
belongs_to :emailable, polymorphic: true
# There is an :address column
end
class UserAccount < ActiveRecord::Base
belongs_to :person
end
一个人可以有多个电子邮件地址。一个人也可以有一个用户帐户。 (我已将其移至它自己的模型中,因为并非所有人都会成为用户。)登录时,任何人的电子邮件地址都可以用作“用户名”。
鉴于此,我想使用 Devise gem。我看到您可以指定应用身份验证的模型。 User 被广泛使用,但我会使用 UserAccount。但是,Devise 然后期望电子邮件(用户名)字段在此模型中。
当一个人注册用户帐户时,实际上会创建三个关联记录(Person、EmailAddress 和 UserAccount)。我不知道如何让 Devise 使用此设置。有什么想法吗?
【问题讨论】:
标签: ruby-on-rails email devise associations