【问题标题】:How to query Active Record with method from another gem?如何使用另一个 gem 的方法查询 Active Record?
【发布时间】:2017-10-14 21:47:16
【问题描述】:

我正在使用acts_as_votable gem 来允许对我的模型帖子进行投票。它允许我执行@post.weighted_score 之类的操作,以查看帖子的赞成票/反对票的净数量。如何在我的 posts_controller 中使用此方法来查询加权分数超过 5 的帖子?我需要这样做,因为我想有一个帖子的“趋势”和“热门”页面,其中帖子需要一定数量的点才能显示在那里。谢谢

【问题讨论】:

  • 根据docs,可以添加缓存列,包括cached_weighted_score,想必可以查询这些列。

标签: ruby-on-rails ruby


【解决方案1】:

您需要按照acts_as_votable 关系的建议加入votes_for

Post.left_joins(:votes_for).group('id').having('SUM(IF(vote_flag = 1, 1, IF(vote_flag = 0, -1, 0))) > ?', 5)

这给你的最高加权分数超过 5

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-21
    • 1970-01-01
    • 2021-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多