如何通过属性哈希查找关联模型

时间:2015-06-02 06:36:35

标签: ruby-on-rails ruby mongoid

仅供参考该项目使用Mongo / Mongoid

假设我有模型A,B,C和D. A has_many Bs has_many Cs has_many Ds。

每个都有一个属性' name'这在它的关联树中是唯一的,但不一定在整个模型类中。

如果我有这样的哈希:

{a: "name1", b: "name2", c: "name3"}

{a: "name2", b: "name2", c: "name3", d: "name4"}

如何在散列中找到最后一个模型?基本上(虽然它需要动态的哈希大小):

@item = A.where(name: "name1").first
        .Bs.where(name: "name2").first
        .Cs.where(name: "name3").first

1 个答案:

答案 0 :(得分:0)

你可以用,

@item = A.where(name: "name1").first
@item = @item ? @item.Bs.where(name: "name2").first : Bs.where(name: "name2").first
@item = @item ? @item.Cs.where(name: "name3").first : Cs.where(name: "name3").first
@item = @item ? @item.Ds.where(name: "name4").first : Ds.where(name: "name4").first