2010-07-02 104 views
2

G'day guys,has_one在軌道中的嵌套路線

在Rails路線問題上有點問題。

有一個頂級資源:/客戶/它本身只有一個/報價/資源

行情可以兼得first_resources和second_resources

與本報價相關資源的集合

大廈該路線,但我如何在has_one路線下嵌套多個路線?

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

該怎麼辦?

quote.resources :first_resources 
quote.resources :second_resources 

通過將它們作爲子元素映射到子結構?

或者以不同的方式管理集合會更容易嗎?

回答

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 

這將使你的

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] 

,會給你的

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

我覺得網址第一個是什麼喲你在之後。希望這可以幫助。

Resources:http://api.rubyonrails.org/classes/ActionController/Resources.html

0

map.resources:客戶,:HAS_ONE =>:報價

map.resource:報價,:的has_many =>:first_resources

map.resource:報價,:的has_many =>:second_resouces