Rails 3 - Вложенные ресурсы и полиморфные пути: хорошо для двух уровней, но разбиты на трех

Я пытаюсь создать простой сайт воссоединения семей с: "сообщениями", "семьями", "детьми", и «картинки». В идеале я бы хотел, чтобы маршруты / отношения были структурированы следующим образом:

  resources :posts do
    resources :pictures
  end

  resources :fams do
     resources :pictures
     resources :kids do
       resources :pictures
     end
  end

В моделях у меня есть необходимые отношения « own_to » и « has_many », установленные между fams и kids . Fams , kids и сообщения все определены с помощью «has_many: pictures,: as =>: imageable », в то время как изображения определены как: own_to: imageable,: polymorphic => true

При попытке сделать link_to "Edit" и link_to "Destroy" на изображениях просмотров Я сталкиваюсь со всевозможными проблемами _path . polymoric_path отлично работает на двух уровнях, а именно для пост-картинок и fams-pictures , но он не может обрабатывать трехуровневый случай fams-kids-pictures . Я предполагаю, что он не был разработан для обработки двух уровней объектов « imageable » над объектом picture . Другая проблема заключается в том, что в одном случае контроллер изображений должен обрабатывать ситуацию вложенности ресурсов «одного уровня», а в другом - обрабатывать ситуацию «двух уровней». Не знаю, как к этому подойти.

Одна вещь, которую я сделал, - это не вкладывать ресурсы более чем на одну глубину, в соответствии с указаниями руководств Ruby. Я структурировал их следующим образом:

  resources :posts do
    resources :pictures
  end

  resources :fams do
     resources :pictures
     resources :kids
  end

  resources :kids do
     resources :pictures
  end

Это вызвало еще один набор проблем с путями, поскольку отношения между семьей и детьми больше не сохранялись. Я также не смог заставить polymorphic_path корректно функционировать во всех различных представлениях изображений.

Итак, вот мой главный вопрос: знает ли кто-нибудь пример / учебник по Rails 3, в котором вложенные ресурсы, принадлежность / has_many и полиморфные отношения объединены вместе, особенно если речь идет не только о простых двухуровневых отношения, которые показывают большинство примеров? (Я новичок в Rails, и примеры Rails 2, которые я нашел в этих областях, сбивают с толку, учитывая отсутствие у меня исторического опыта Rails.)

Или кто-нибудь может сказать мне, как структурировать link_to EDIT и link_to DELETE для моих представлений picture , а также оператор redirect-to для моего create , update , и уничтожить методы в моем контроллере изображений ?

Спасибо!

9
задан Don Leatham 7 May 2011 в 00:34
поделиться