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

时间:2015-05-08 06:06:49

标签: ruby-on-rails database ruby-on-rails-4 console records

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

我有子文章嵌入文章。换句话说,子文章属于文章,文章有许多子文章。

我从控制台尝试了类似Article.subarticle.all的内容,但这不起作用。

最好的方法是什么?

3 个答案:

答案 0 :(得分:4)

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

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

然后致电: a.subarticles - 这会显示与您的subarticles

相关联的所有Article

答案 1 :(得分:3)

我认为joins正是您所寻找的:

Article.joins(:subarticles)

将生成以下SQL:

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

另一种选择是通过其子文章简单地map所有文章:

Article.all.map(&:subarticles)

它将返回article_id不为空的所有子粒子的关系。

答案 2 :(得分:0)

为了能够呼叫Article.subarticle.all,您需要在文章模型中定义关联。

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

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