inherited_resources - перейти к родительскому

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

  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"}

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

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


person Alexey Poimtsev    schedule 21.11.2010    source источник


Ответы (1)


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

PostsController < InheritedResources::Base
  belongs_to :blog
  ...
person Petrik de Heus    schedule 22.11.2010
comment
Ну конечно; естественно!!! Я пытаюсь объединить действия "blogs # show" и "posts # index" с описанным фрагментом кода. может ты знаешь способ получше? - person Alexey Poimtsev; 23.11.2010
comment
я изменил свои маршруты на resources: blogs,: except = ›[: show] do resources: posts end match 'blogs /: blog_id' =› 'posts # index', но не уверен, что это лучшее решение - person Alexey Poimtsev; 23.11.2010