アプリケーション認証にdeviseを使用しています。User
サインイン/アップモデルのモデルを持っています。
この機能は、クライアント、つまりユーザーがサインアップすると、必須のユーザープロファイルページに入力するように設定されています。deviseを使用してすべてが正常に機能しました。
今、私は新しい機能を持っています、ユーザーはさまざまなタイプにすることができます(たとえばA
、、)B
C
ユーザーのタイプがである場合、ユーザーはA
同じサインアッププロセスと同じプロファイルページに従う必要があります。
ユーザーがタイプB
の場合、サインアップ画面は異なり、管理者からの検証を待ちます。タイプごとに異なる変更もありC
ます。
すべての異なるタイプには異なるプロファイルページがあり、フィールドは異なります。
だから私はポリモーフィックな関連付けを持つことに決めました、そしてこれは私のモデルがどのように見えるかです
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
attr_accessible :email, :password, :password_confirmation, :remember_me
belongs_to :user_type, :polymorphic => true
end
class A
has_one :user, :as => :user_type
end
class B
has_one :user, :as => :user_type
end
class C
has_one :user, :as => :user_type
end
これがシナリオを実行する正しい方法なのか、それともこれを実装するためのより良い方法があるのかを知りたいだけです。