zwischen drei Modellen aufgeteilt Sagen wir, ich habe folgendes in einer Rails-4 App:Wie die Devise Juwel in einer Rails-Anwendung verwenden, wo die „User“ ist
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
Eine Person, mehrere E-Mail-Adressen haben kann. Eine Person kann auch ein Benutzerkonto haben. (Ich habe dies in sein eigenes Modell verschoben, da nicht alle Personen Benutzer sein würden.) Jede der E-Mail-Adressen der Person könnte als "Benutzername" beim Einloggen verwendet werden.
Angesichts dieser würde ich gerne die verwenden Juwel entwickeln. Ich sehe, dass Sie das Modell angeben können, auf das die Authentifizierung angewendet wird. User
ist weit verbreitet, aber ich würde UserAccount
verwenden. Devise erwartet jedoch, dass das E-Mail-Feld (Benutzername) in diesem Modell enthalten ist.
Wenn eine Person ein Benutzerkonto registriert, würden tatsächlich drei verknüpfte Datensätze erstellt (Person, EmailAddress und UserAccount). Ich kann nicht herausfinden, wie man Devise dazu bringt, mit diesem Setup zu arbeiten. Irgendwelche Ideen? Danke für jede Hilfe.