Вложенные маршруты с has_one в рельсах - PullRequest
2 голосов
/ 02 июля 2010

Добрый день, ребята,

На данный момент есть небольшая проблема с маршрутами Rails.

Имейте главный ресурс: / Клиент /, у которого есть только один / Цитата / ресурс

Кавычки могут иметь как first_resources, так и second_resources

, которые представляют собой наборы ресурсов, связанных с кавычками

Построение маршрута, хотя как мне вложить несколько маршрутов в маршрут has_one?

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

как мне это сделать?

quote.resources :first_resources
quote.resources :second_resources

путем сопоставления их как подэлементов с подструктурой?

Или было бы проще управлять коллекцией по-другому?

Ответы [ 2 ]

4 голосов
/ 02 июля 2010

для этого я бы вложил внутрь блока:

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

0 голосов
/ 02 июля 2010

map.resources: customer,: has_one =>: цитата

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

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

...