有没有办法根据用户类型使 authentication_keys 配置有条件?
例如,在我的用户模型中,我有两个不同的用户,标准用户和学生,由位掩码属性的值定义。我想根据用户名和 school_id 对学生进行身份验证。标准用户不必为 school_id 设置值。为了适应这一点,我有两种类型的登录屏幕,一种用于学生,另一种用于标准用户。学生登录屏幕有一个隐藏的 school_id 字段,用于对他们的学校进行身份验证。
在我的设计配置文件中,我有:
config.authentication_keys = [ :username, :school_id ]
但是,使用此设置标准用户无法登录,我的猜测是它期望所有经过身份验证的用户都有一个 school_id。是否可以使身份验证密钥有条件?或者给 school_id 一个 allow_blank 选项?我希望能够将标准用户和学生保持在同一模型中。