2010-12-16 11 views
0

を通じて、私はそう基本的にそれぞれの購入は、ユーザーと購入されている項目の両方に属して購入Railsの3デザイン:


class Purchase < ActiveRecord::Base 
    belongs_to :user 
    belongs_to :item 

を表すモデルを持っています。今ここに、ユーザーが購入したとき、彼はに行くように項目の私の問題は、私でし巣の購入は、次のとおりです。正常に動作します

/アイテム/ 1 /購入/新

が、私も同様ユーザーは/ user/1/purchases/1/editなどに行くことができるようになります。基本的に購入することはできないユーザーとアイテムの両方にネストする必要があります。

今のところ、基本的には、/ item/1/purchase/user/1/purchase/etcのように、ユーザーとアイテムの両方にもっと安らかなアクションを追加していますが、コントローラがかなり大きくなります。これが唯一の方法ですか、またはリソースを2つのリソースにネストできますか?

答えて

1

確かに、それらは両方に入れ子にすることができます。 Railsはあなたが望むルートを作ることを止めません。

ただし、特定の親リソースの下で特定のアクションのみを入れ子にすることをおすすめします。たとえば、newcreateはアイテムの下に置くことができます。これはアイテムからの購入に達すると意味がありますが、実際には全く何かの下に入れ子にする必要がある場合はshowなど。