モデル関係をセットアップしましたが、次のようなコードを使用するとすべてがうまく機能します。
@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.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
試す:
@parent.children.detect { |child| child.id == 14 }
これにより、データベースにクエリを実行せずにオブジェクトが返されます。.name
その後、そのメソッドを呼び出すことができます。