在Rails 4中找到一组深层嵌套的子对象的所有父母的父母

生病的

这听起来可能令人困惑,但是很容易解释。假设我有3个深层嵌套的模型:

//boo.rb
class Boo < ActiveRecord::Base
  has_many :foos
end

//foo.rb
class Foo < ActiveRecord::Base
  belongs_to :boo
  has_many :goos
end

//goo.rb
class Foo < ActiveRecord::Base
  belongs_to :foo
end

现在,如果我有一组Goos @goos,是否有可能以一种精简的方式获得所有连接的Foos?我正在使用此atm,但它不是很精简,因为我仅在第一步中获得ID,而不是对象本身:

@goos.pluck(:foo_id)

而且,如果有更好的方法可以做到,那么还有没有办法让所有联系的Foos的父母呢?这样我就可以将所有Boos中的一组连接到中的对象@goos

希望这个问题不是很奇怪,但是我不确定是否有技术术语!

生病的

像这样工作:

#Get all Foos
@foos = @goos.map(&:foo).compact.uniq

#Get all Boos
@boos = @goos.map(&:foo).map(&:boo).compact.uniq

虽然它不是真正伟大的事业它返回一个数组,而不是一个有效记录的关系,这意味着我不能打电话where,并order在其上。

编辑:

如果出于某种原因保留活动记录关系类很重要,那么这是更好的方法:

#Get all Foos
@foos = Foo.where(id: @goos.map(&:foo.id).uniq)

#Get all Boos
@boos = Boo.where(id: @goos.map(&:foo).map(&:boo_id).uniq)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Rails中的嵌套布局

来自分类Dev

Rails 4渲染JSON嵌套对象

来自分类Dev

在Rails中嵌套JSON

来自分类Dev

Rails 4-无法保存嵌套对象

来自分类Dev

rails:rails的条件4

来自分类Dev

包括有孩子的Rails STI父母

来自分类Dev

Rails 3.2-HABTM仅检索没有孩子的父母

来自分类Dev

Rails:许多父母之一

来自分类Dev

Rails 4:嵌套表单

来自分类Dev

Rails 4+最佳做法:在保留孩子的同时删除父母

来自分类Dev

Rails 4 ActiveRecord组

来自分类Dev

Rails深层嵌套表格(带照片)

来自分类Dev

Rails验证对象中的所有属性

来自分类Dev

Rails:嵌套模型:如何获取刚刚在父母的控制器中创建的孩子的新记录

来自分类Dev

是否可以找到与对象的所有关联记录以在Rails 4中合并记录

来自分类Dev

Rails:如何测试父母在孩子模型中是否有孙子

来自分类Dev

在Rails 4中使用JQuery以一种形式生成嵌套对象

来自分类Dev

Rails 4中的JSON并不包含对象的所有字段

来自分类Dev

rails:rails的条件4

来自分类Dev

在Rails中创建一组行

来自分类Dev

Rails 4:嵌套表单

来自分类Dev

在Rails中具有一组“颜色切换”按钮的最佳方法

来自分类Dev

在Rails中找到没有孩子的模型

来自分类Dev

一键创建Rails嵌套对象

来自分类Dev

在Rails中以嵌套形式更新子对象

来自分类Dev

Ruby on Rails协会的父母

来自分类Dev

只需要一组嵌套参数Rails

来自分类Dev

Rails:查询有孙子的父母(协会)

来自分类Dev

Rails-如何显示嵌套哈希中的所有值