如何通过关联表的列获取记录排名

时间:2014-06-10 13:32:43

标签: ruby-on-rails ruby-on-rails-3 activerecord ruby-on-rails-4

User 有一个 UserProfile UserProfile 属于 {{ 1}}

User 表中有一列名为total_point 我想按此专栏排序。

所以我尝试了这个,但是我收到了这个错误。为什么?我怎么修改?

错误

UserProfile

控制器

wrong number of arguments (1 for 0)

查看

@rank = User.confirmed.joins(:user_profile).order('user_profiles.total_point ASC').index(current_user)

1 个答案:

答案 0 :(得分:1)

如果要在多个视图中使用此订单行为,您最好将此逻辑放在模型中以保持视图清洁:

class User < ActiveRecord::Base

   default_scope joins(:user_profile).order('user_profiles.total_point ASC')

end

只需在集合/数组上调用上面提到的order方法,也可以在需要时覆盖此默认逻辑。养成在模型/库中保留大部分业务逻辑的习惯是很好的。