在 Rails 控制台中查看嵌套记录

Viewing Nested Records in Rails Console

我正在尝试从 rails 控制台查看嵌套记录。

我在文章中嵌套了子文章。也就是说,subarticles属于article,articles有很多subarticles。

我已经从控制台尝试过 Article.subarticle.all 之类的操作,但这不起作用。

解决此问题的最佳方法是什么?

我认为 joins 是您要找的:

Article.joins(:subarticles)

将生成以下 SQL:

SELECT "articles".* FROM "articles" INNER JOIN "subarticles" ON "subarticles"."article_id" = "article"."id"

另一种选择是 map 所有文章的子文章:

Article.all.map(&:subarticles)

它将 return 与所有 article_id 不为空的子条目建立关系。

如果你想查看所有 subarticles 到一个特定的 Article,你只需要将它分配给一个变量:

a = Article.find(1) - 这将分配文章 id = 1

然后调用: a.subarticles - 这将显示与您的 Article

关联的所有 subarticles

为了能够调用Article.subarticle.all,您需要在文章模型中定义一个关联。

class Article < ActiveRecord::Base
   has_many :subarticles 
   ...
end

参考:http://guides.rubyonrails.org/association_basics.html