G'day伙计们,
目前在Rails路由方面存在一些问题。
拥有一个顶级资源:/ Customer /其本身只有一个/ Quote / resource
引号可以包含first_resources和second_resources
是与引号相关的资源集合
构建路由,但如何在has_one路由下嵌套多条路由?
map.resources :customer, :has_one => :quote
我该怎么做?
quote.resources :first_resources
quote.resources :second_resources
将它们作为子元素映射到子结构?
或者以不同的方式管理集合会更容易吗?
答案 0 :(得分: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
我认为第一个是你所追求的。希望这会有所帮助。
资源:http://api.rubyonrails.org/classes/ActionController/Resources.html
答案 1 :(得分:0)
map.resources:customers,:has_one => :报价
map.resource:quote,:has_many => :first_resources
map.resource:quote,:has_many => :second_resouces