我已经建立了一个模型关系,当我使用类似于以下的代码时,一切都运行良好:
@parent.child.each do |item|
item.name
end
但是我怎么会只给一个特定的孩子打电话给那里 id
例如。
孩子ID是14
想要这样的电话:
@parent.child[childid].name #>>>>>> CHILD'S NAME
我已经建立了一个模型关系,当我使用类似于以下的代码时,一切都运行良好:
@parent.child.each do |item|
item.name
end
但是我怎么会只给一个特定的孩子打电话给那里 id
例如。
孩子ID是14
想要这样的电话:
@parent.child[childid].name #>>>>>> CHILD'S NAME
尝试:
@parent.children.detect { |child| child.id == 14 }
这应该返回对象而不查询数据库。然后你可以调用.name
它的方法。
@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