【问题标题】:rails categorizing nested resources分类嵌套资源的rails
【发布时间】:2011-07-30 13:33:14
【问题描述】:

我的用户拥有嵌套资源帖子。我有一个页面显示所有用户的所有帖子。但是,在左栏中,我想按用户对它们进行分类,如下所示,其中包含指向带有 ?username=laura 之类参数的 URL 的链接,例如,仅显示他们的帖子。我很确定我可以找出 URL 参数,但是如下所示对它们进行排序对我来说很困难。有什么建议么?谢谢!

Adam (23)

Brad (12)

Mike (1)

【问题讨论】:

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


    【解决方案1】:
    Users.includes(:posts).map{|u| [u.name, u.posts.count, u.id]}.sort
    

    会给你一个排序的用户数组、帖子计数和用户 ID,比如

    [
     ["Adam", 23, 23],
     ["Brad", 12, 2],
     ["Mike", 1, 44]
    ]
    

    您可以为该用户提供链接的前两个元素和链接目标的用户 ID。

    如果有成千上万的用户和/或帖子,这可能会变慢,但它应该可以帮助您入门。

    【讨论】:

    • 好吧,我只需要这些用于一组选定的帖子。我已经对帖子进行了查询并将它们保存在@posts_query 中......我怎么能这样做,但只能在我的查询中?
    【解决方案2】:

    你应该对它们进行排序:

    @sorted_users = users.sort { |left,right| left.posts.count <=> right.posts.count }
    

    另外,如果你有一个用于帖子的 cache_column,你可能应该使用数据库来实现它。

    【讨论】:

    • 不,它存在于所有 Rails 版本中,在这种情况下,它将是 class Post true; end 并且 User 类必须有一个 posts_count 列,它可以用于在不加载帖子的情况下进行排序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-05
    • 1970-01-01
    • 2015-09-30
    相关资源
    最近更新 更多