2012-01-27 13 views
0

私は確かにそこにあり、そこに答えます..しかし、私はそれを行うための最もクリーンな方法を見つけることができないと私はRubyとRails 3.1で遊んで始めています。belongs_to <parent_model>というモデルのインスタンスを作成する最もクリーンな方法は何ですか?

私はクライアントモデルとプロジェクトモデルを持っています。

私はclient_idを入力する必要がないプロジェクト#newにつながるクライアント#show viewのボタンを持っています。

さらに、project#newはまだ自分自身でアクセス可能であり、利用できない場合はclient_idを要求する必要があります。

おかげ

答えて

1

は、ネストされたリソースを見てみましょう:

http://guides.rubyonrails.org/routing.html#nested-resources

れ、親IDの通過の世話を使います。プロジェクト#newに直接行くルートを持つことができます。そして、すでに定義されているかどうかに応じて、ビュー内のクライアントIDを問い合わせるかどうかを処理するだけで済みます。

+0

あなたはそれが最もきれいな方法だと確信していますか?プロジェクトの子どもや子どもたちはどうなりますか?私は入れ子にしておきますか?私はクエリパラメータとしてckient idを送信することができましたが、どちらかといえばすばらしく見えません。 – Dave

+0

いいえ、入れ子にしないでください。ベストプラクティスでは、2つ以上深く巣立たせるべきではないと言います。あなたがそれについて考えるなら、深く巣を入れる理由はありません。階層では、IDの5のプロジェクトを作成する '/ client/4/project/new'のような直接的な親だけが必要です。 – Nick

+0

あなたのネストを浅くしておけばこれを処理するためのきれいな方法です。パスヘルパーは本当にきれいになります: 'new_client_project_path(@ client.id)' – Nick

関連する問題