私はRailsが新しく、Railsで利用可能なツールを使って複雑なモデル(およびそれらの関連)を構築する方法を理解しようとしています。次の例のシナリオを簡単に想像してみましょう。Users
はONEレースTeam
のメンバーです。ユーザーはCars
とSchedules
を作成できます。これらの車は、Drivers
,Fuel
レベル、Engines
およびWheels
を有する。これらは、Tires
,Hubs
およびMilesDriven
を有する。あなたは私のRESTfulとRails-yのこととCar
を構築するためのユーザーを可能にUIを提示する方法でまだ闘争...アイデア...のみ1レベルの深さをネストに関するすべての警告が与えられモデルを親に関連付けるための基本的なレールパターン
を取得しますTires
となります。
わたしたちは、私たちが自由に使っている分野と同様に、Session
& Cookie
を持っていることを知っています。ユーザーはログインし、チームページteams(current_user.team_id)
にルーティングされます。次に、Car
を作成します。これは車を作ることができるnew_team_car_path(current_user.team_id)
へのルート...今私はこの車に車輪を追加したいです... new_team_car_wheel_path(current_user.team_id, car_id)
などへのそのようなルートはそうですか?私はそうは思わない...しかし、鉄道の道は何ですか?また
、構築されたすべてのものは、チーム(およびユーザー)に、最終的には、関連付けられますように、それは「キャリー」にベストですteam_id
および/またはuser_id
協会ダウンTire
またはのすべての方法は、それがすることが妥当です実行時に階層の関連付けに従うことによってTeam
を照会しますか?
私はこの質問への単一の答えはありません...
okです。ありがとう!ですから、 'user' *と' team'を 'car'(または' wheel'、あるいは深くネストされたリソース)に埋め込むことは価値があると思いますか? 'belongs_to'チェーンを歩いて戻って' user'や 'team'を見つけ出すのとは対照的に、あなたが必要とするとき、そしてもしそれが最適化の理由であれば?あなたは常にDBに照会していませんか?または..? – Meltemi
この特定の状況では、Devise(または何でも)はすべての要求に対してこれを行うので、ユーザーを見つけるためのパフォーマンスコストをすでに支払っています。だから私はあなたがリソースを入れ子にする必要はないと言っています。ユーザーとその関連を検出する組み込みの方法があるからです。 – zetetic