我的应用程序中有一个单表继承结构,Admins 和 Mods 扩展了一个 User 类。该表使用一个鉴别器值,因此每条记录的类型都是“admin”或“mod”
在寻找用户(登录时)时,我想写以下内容:
current_user = User.find(params[:email => email])
但是,这会创建 SQL,其中包括
SELECT ...... WHERE ("type" IN ('User') AND .....
这意味着找不到记录。但是,如果我输入
current_user = Admin.find(params[:email => email])
我得到了用户(如果他们是管理员)。
由于仍然创建了“类型”IN(“用户”),因此我也尝试了以下操作但无济于事:
current_user = User.first(:email => email, :type => [Admin, Mod])
提前感谢您对此的任何帮助