Заставить datamapper игнорировать тип при запросе базы данных - PullRequest
0 голосов
/ 02 июня 2010

У меня есть одна структура наследования таблиц в моем приложении, благодаря которой 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 голосов
/ 02 июня 2010

Я думаю, что это должно быть

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