我正在使用设计进行我的应用程序身份验证。我有一个User
模型,它是登录/注册模型。
该功能是这样一种方式,即当客户(即用户)注册时,他将被带去填写强制性的用户资料页面。使用设计一切正常。
现在我有了一个新功能,用户可以是不同的类型(比如说A
, B
, C
)
如果用户是 type 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
我只是想知道这是处理这个场景的正确方法还是有更好的方法来实现这个?