Ich benutze Rails 3.2 und entwickle 2.0 und bin ziemlich neu in Rails.
Bedarf
Ich möchte Folgendes erreichen:
- 2 oder mehr "Benutzer" -Modelle haben, z. Mitglied, Kunde, Admin
- Alle Modelle haben einige erforderliche Felder gemeinsam (z. B. E-Mail und Passwort).
- Jedes Modell kann einige eindeutige Felder haben (z. B. Firma nur für Kunden).
- Einige Felder können gemeinsam genutzt werden, haben jedoch nicht dieselbe Validierung (z. B. Name ist für den Kunden erforderlich, für Mitglied jedoch optional).
- Alle Felder müssen während des Registrierungsprozesses ausgefüllt werden, daher sind die Formulare unterschiedlich
- Das Anmeldeformular sollte eindeutig sein
Mögliche Lösungen
Ich habe ziemlich lange gegoogelt und StackOverflow durchsucht, aber mir scheint nichts richtig zu sein (ich bin ein Java-Typ, sorry :) und jetzt bin ich ziemlich verwirrt. Es wurden zwei Lösungen gefunden:
Einzelner Benutzer
Das ist die häufigste Antwort. Erstellen Sie einfach den Standardbenutzer und erstellen Sie Beziehungen zwischen Mitglied -> Benutzer und Kunde -> Benutzer. Mein Anliegen ist hier, wie ich einen individuellen Registrierungsprozess für jedes Modell erreichen kann. Ich habe verschiedene Dinge ausprobiert, aber alles endete als Chaos!
Benutzer mit mehreren Geräten
Dies löst den benutzerdefinierten Registrierungsprozess und scheint mir richtig zu sein, aber das eindeutige Anmeldeformular ist ein Blocker. Ich habe auf SO eine Antwort gefunden ( Devise - Login von zwei Modellen ), die vorschlägt, Devise :: Models :: Authenticatable.find_for_authentication (Bedingungen) zu überschreiben. Das scheint kompliziert (?) Und da ich neu in Schienen bin, würde ich gerne wissen, ob das funktionieren könnte?
Danke für deinen Rat!
config.scoped_views = true
?