2

皆さん、こんにちは。

現在、Rails のルートに少し問題があります。

最上位のリソース: /Customer/ があり、それ自体には /Quote/ リソースが 1 つしかありません

見積もりには first_resources と second_resources の両方を含めることができます

これは、引用に関連付けられたリソースのコレクションです

ルートを構築しますが、has_one ルートの下に複数のルートをネストするにはどうすればよいですか?

map.resources :customer, :has_one => :quote

私はどのように行いますか?

quote.resources :first_resources
quote.resources :second_resources

それらをサブ要素としてサブ構造にマッピングすることによって?

それとも、別の方法でコレクションを管理する方が簡単でしょうか?

4

2 に答える 2

4

このために、ブロック内にネストします。

map.resources :customers do |customer|
  customer.resource :quote do |quote|
    quote.resources :first_resources
    quote.resources :second_resources
  end
end

代替構文:

map.resources :customers do |customer|
  customer.resource :quote, :has_many => [:first_resources, :second_resources]
end

これにより、次のURLが得られます

customers/:customer_id/quote/first_resources/:id
customers/:customer_id/quote
customers/:id

または、あなたが提供した方法で、ネストしたくない場合に特定の引用に到達できるようにするには、複数の引用をマップする必要があると思います

map.resources :customers, :has_one => :quote
map.resources :quotes, :has_many => [:first_resources, :second_resources]

それはあなたのURLを与えるでしょう

customers/:customer_id/quote
customers/:id
quotes/:quote_id/first_resources/:id

最初のものはあなたが求めているものだと思います。お役に立てれば。

リソース: http://api.rubyonrails.org/classes/ActionController/Resources.html

于 2010-07-02T06:47:06.580 に答える
0

map.resources :customers, :has_one => :quote

map.resource :quote, :has_many => :first_resources

map.resource :quote, :has_many => :second_resouces

于 2010-07-02T05:57:32.677 に答える