2015-12-01 50 views
1

我的Rails應用程序有一個模型Teachersbelongs_toUsersUsershas_oneTeacher。我使用devise進行用戶身份驗證,因此用戶模型帶有一個字段:last_sign_in_at訂單指數屬性

在我的一個管理頁面上,我想按其相應用戶的last_sign_in_at時間排序Teachers。我怎麼能做到這一點?

我在用各種方式試圖joins,例如:

@teachers = User.joins(:teacher).order("users.last_sign_in_at") 

,但我還沒有得到任何人的工作。

+1

你要得到老師,但你爲什麼叫從用戶類中的方法?你的意思是'Teacher.joins(:user)'? –

+0

@VanHuy當然。對不起,菜鳥的錯誤。 – dedles

回答

1

如果你設置你的模型之間的關聯正確,你的teachers表有一個user_id列[因爲Teacherbelongs_to的User]在數據庫中,那麼下面應該工作:

@teachers = Teacher.joins(:user).order("users.last_sign_in_at ASC") 

或:

@teachers = Teacher.joins(:user).order("users.last_sign_in_at DESC") 

因爲,User.joins(:teacher).order("users.last_sign_in_at")會返回用戶,但不是老師。

這也給作爲註釋部分的提示通過Van Huy的。

+1

謝謝你,看起來像一個需要多一點練習與.joins方法 – dedles