2010-11-21 3 views
0

У меня есть 2 унаследованных ресурсов (с плагином Хосе Валима) - блоги и сообщения. Конечно - блог hm Posts и Post bt Blog. Маршруты достаточно простоinherited_resources - перейти к родительскому

resources :blogs, :only => [:show] do 
    resources :posts 
    end 

Также я обновил действие сообщения # индекса с последующим

def index 
    redirect_to parent_url 
    end 

, как я планировал - при попытке получить доступ к http://devhost/blogs/2/posts я буду перенаправлен на http://devhost/blogs/2, но я вижу ошибку маршрутизации

No route matches {:action=>"show", :controller=>"blogs"} 

его так странно, потому что я вижу

blog GET /blogs/:id(.:format)  {:controller=>"blogs", :action=>"show"} 

на рейк-маршруты.

Любая идея - что может вызвать следующую ошибку?

ответ

0

Кажется, что родитель (блог) не установлен, потому что он отсутствует в параметрах маршрутов. Вы добавили свойство belongs_to в PostsController?

PostsController < InheritedResources::Base 
    belongs_to :blog 
    ... 
+0

да, конечно !!! Я пытаюсь объединить блоги действий # show 'и' posts # index 'с описанным фрагментом кода. может быть, вы знаете лучший способ? –

+0

я изменил свои маршруты в ресурсов: блоги,: кроме => [: показать] сделать ресурсы: сообщения конец сопоставляют блоги /: blog_id '=> «сообщений # индекс» , но не уверен, что это лучшее решение –

Смежные вопросы