タグ

ブックマーク / www.everyleaf.com (1)

  • 株式会社万葉 Ruby on Rails Tips: 密結合な親子構造を作るには

    密結合な親子構造を作るには Railsでは通常、親子構造で双方向にリンクをはるには、has_many(またはhas_one)とbelongs_toを使います。しかし、このように作られた構造では、親のオブジェクトと、その子オブジェクトからたどった親オブジェクトは、オブジェクトとしては別物になります。 1回のリクエストの間に、親オブジェクトの子を取得し、かつ、子オブジェクトから親を取得するというケースはあまり多くありませんが、例えば、兄弟オブジェクトを辿って計算したいという場合は、このようなActiveRecordを素直に使った親子構造では、コストが大きくなってしまいます。つまり、親からある子を得るのに1回検索し、子から親を得るのに1回検索し、その親からまた子を得るのに1回検索します。これを兄弟を辿る回数繰り返すのはかなりの無駄になります。また、検索時にincludeオプションを使ってもうまく

  • 1