在查询数据库时,让datamapper忽略'type'

时间:2010-06-02 13:28:45

标签: ruby datamapper single-table-inheritance

我的应用程序中有一个表继承结构,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])

我得到了用户(如果他们是管理员)。

我还尝试了以下无效,因为仍然创建了'type'IN('User'):

current_user = User.first(:email => email, :type => [Admin, Mod])

提前感谢您对此的任何帮助

1 个答案:

答案 0 :(得分:0)

我认为应该是

current_user = User.first(:email => email, :type => ['Admin', 'Mod'])