显示RoR关系

时间:2010-08-29 13:34:06

标签: ruby-on-rails ruby relationships

我设置了一个模型关系,当我使用类似于:

的代码时,一切都运行良好
@parent.child.each do |item|
item.name
end

但是我怎么称呼那个id

的特定孩子

例如。

儿童ID为14

想要一个像:

这样的电话
@parent.child[childid].name #>>>>>> CHILD'S NAME

2 个答案:

答案 0 :(得分:0)

@parent.child[14]很可能无法正常工作,child是一个数组,如果是has_many关系,但数组索引与子ID不同。所以你可以这样做:

@parent.child.find(14).name

我不太确定,但如果你这样做:

@parent = Parent.find(some_id, :include => :child)
@parent.child.find(some_other_id) # should hit the query cache

答案 1 :(得分:0)

尝试:

@parent.children.detect { |child| child.id == 14 }

这应该在不查询数据库的情况下返回对象。然后,您可以在其上调用.name方法。