2010-06-02 29 views
0

我的應用程序中有一個表繼承結構,Admins和Mods擴展了User類。該表採用了鑑別值,每條記錄都有一個類型不是「管理」或「MOD」的在查詢數據庫時讓數據映射器忽略'type'

當談到找到用戶(在登錄)我想寫:

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]) 

預先感謝任何幫助這個

回答

0

我想它應該是

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

不怕。生成的SQL看起來像這樣: SELECT ..... FROM「users」WHERE(「type」IN('User')AND「type」IN('Admin','Mod')AND「email」=。 ...... – Ger 2010-06-02 13:39:48