2012-03-11 7 views
3

私はビジネス、カタログ、および製品リソースを持っています。Rails 2つのリソースのネストされたリソースとしての単一リソース

事業は、カタログや製品の数を持っています。

カタログは常にビジネスに属します。

製品は、カタログの下であってもなくてもよいです。

CATALOG_IDとbusiness_idた両製品テーブル。

  • 企業/::business_id /カタログ/:CATALOG_ID /製品私はカタログなしの製品やカタログに属する製品、すなわち、これらのURLを許可することができるように

    にはどうすればルートを形成します/:ID

  • 企業/:business_id /製品/:

    resources :businesses do 
        resources :catalogs 
    
        resources :products do 
         resources :images 
         end 
        end 
    
    012:ID

は、私はすでにこれを使用して、後者を許可しています

最初のURLを許可するにはどうすればよいですか?私は単純な何かが欠けている知っている

、これを閉じて、存在する場合、重複を参照して自由に感じます。

ありがとうございます!

+0

ありそれがビジネス要件の場合は3つのレベルのネストされたルートを使うことには何も問題はないのですが、それは[ない*レール*方法](http://guides.rubyonrails.org/routing.html#nested-resources)です。 2つのレベルのネストされたルートを持つことで、2つのレベルのネストされたルートを持つことができ、より安らかなルートを得ることができます。 –

+0

@garbagecollectionの心はそれを行う方法についての答えを与えますか? 2つのレベルのネストされた3つのルートを達成する – yretuta

+0

[現在取り組んでいるこのプロジェクトのルートを確認する](https://github.com/serv/minforum)私はあなたが経験した非常に似た問題で苦労しました。現在、Forum、Topic、Postの3つのモデル間の関連付けはエラーなく非常にうまくいきます。フォーラムには多くのトピックがあります。トピックには多くの投稿があります。だから3つのレベルの深い私のためにここで働くだろう。しかし、2レベルの深さが問題を処理するので、私は3レベルの深さを使用して気にしませんでした。 –

答えて

7

さて、あなたはほとんどがあった:

resources :businesses do 
    resources :catalogs do 
     resources :products do 
     resources :images 
     end 
    end 

    resources :products do 
     resources :images 
    end 
end 

あなたはまた、企業/カタログ/製品のために何ができるの企業/製品のためにやったのと同じ方法では、何の違い、ちょうど巣リソースはありません。

+0

また、深く入れ子にしないでください。 http://guides.rubyonrails.org/routing.html#nested-resources:[1] [1] を - これは、[ネストされたリソースのRailsのルーティング]の免責事項に覆われています。 – engineerDave

関連する問題