在 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
我正在尝试从 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