【问题标题】:Find each topic which has a comment from user XXX查找每个有用户 XXX 评论的主题
【发布时间】:2012-11-07 01:57:33
【问题描述】:

正如标题所述,在编写连接之前,我想知道是否有办法在 Rails 中编写此查询。

我需要找到用户 XXX 发表过一篇文章的每个主题。 对于 Rails 中的此类查询,哪些方法被认为是“正确的”?

编辑 1:

我的模型实际上是这些:

  • 主题 has_many 评论
  • 评论属于_to用户
  • 评论belongs_to主题
  • 用户 has_many 评论
  • 用户 has_many 主题

【问题讨论】:

  • 我们对您的模型一无所知,很难说。另外,joins 可以使用 Rails 语法来表达,看看官方的 Activerecord 文档:guides.rubyonrails.org/…
  • 对不起!我正在更新问题,因为我忘记了模型,现在您可以阅读它们。无论如何感谢您的链接。
  • @AnthonyAlberto:每次阅读 Rails 指南,我都会惊讶于这个框架的强大!
  • 它的本意是易于使用,但您必须学习它的约定以使其变得简单且(几乎)具有魔力:)

标签: ruby-on-rails ruby-on-rails-3.1


【解决方案1】:

试试这个:

Topic.joins(:comments).where('comments.user_id = ?', user.id).uniq

【讨论】:

    【解决方案2】:

    如果您想匹配用户名,请从我的头顶开始:

    Topic.joins(:comments => :user).where("users.name" => "xxx")
    

    【讨论】:

      猜你喜欢
      • 2017-10-16
      • 2011-12-10
      • 2010-11-06
      • 1970-01-01
      • 1970-01-01
      • 2016-08-03
      • 2017-10-31
      • 2017-04-03
      • 2022-08-07
      相关资源
      最近更新 更多