基于父模型属性的订单索引

时间:2015-12-01 06:12:43

标签: sql ruby-on-rails ruby activerecord devise

我的Rails应用的模型Teachers belongs_to UsersUsers has_one Teacher。我使用devise进行用户身份验证,因此用户模型带有一个字段:last_sign_in_at

在我的某个管理页面上,我想按相应用户的Teachers时间排序last_sign_in_at。我怎么能实现这个目标?

我以各种方式尝试了joins,例如:

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

但我还没有让他们中的任何一个工作。

1 个答案:

答案 0 :(得分:1)

如果您正确设置了模型之间的关联,并且teachers表格中有user_id列[因为Teacher belongs_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提示的。

相关问题