1
我加入测验功能从哈特尔教程Twitter的应用程序,并且有下列型号:轨道通过数订购其他表
用户几乎是一样的教程:
class User < ActiveRecord::Base
has_many :followed_users, through: :relationships, source: :followed
has_many :takens, dependent: :destroy
has_many :questions, through: :takens
end
采取问题是IDS的将用户ID表:
:在问class Taken < ActiveRecord::Base
belongs_to :user
belongs_to :question
end
什么有趣
我希望能够按已测试次数显示followed_users和followers。在控制台这可以通过有:
User.find_by_id(1).question_ids.count
然后,我可以这样做:在控制台
User.find_by_id(1).followers.first.question_ids.count
得到计数为一个单一的跟随者。
我觉得我快到了。
如何通过他们的“丹尼斯数”来分类追随者和follow_users? (我也在看cache_count,它起初看起来很有前途,但可能不是我所需要的......)
谢谢,我会试试看。我的表格确实是这样命名的。这个去哪了?我可以以某种方式将它放在用户模型中,使其成为默认排序?或者,我应该把上面的行放在控制器中给我一个用户数组? – grooble 2013-04-08 03:54:14
你也许可以在你的模型中定义一个方法,比如“sort_by_questions_taken”,它只是调用那行代码,然后在你的控制器中你可以使用User.sort_by_questions_taken – hatkirby 2013-04-08 04:05:45
你的sql不起作用,但你肯定指出了我正确的方向!在sqlite中玩弄了我的这一个(哪里有一天有类似的问题):SELECT用户。* FROM users INNER JOIN takens ON users.id = takens.user_id GROUP BY users.id ORDER BY count(takens.user_id)DESC – grooble 2013-04-08 04:52:49