2011-02-24 2 views
0

BooksController (즉, site/books/:id/chapters/:id)의 하위 경로로만 존재하는 ChaptersController은 직접 경로가없는 ChaptersController입니다 (즉, site/chapters/:id) . 그러나 책/: id/chapters/new로 이동하려고하면 다음과 같은 라우팅 오류가 발생합니다.컨트롤러를 보조 컨트롤러로 사용하는 방법 레일에 양식 경로를 고정하는 방법

Showing .../app/views/chapters/_form.html.erb where line #1 raised: 

No route matches {:controller=>"chapters"} 

어떻게 해결할 수 있습니까?

답변

1

:)을 지적 할 것이다 :

resources :books do 
    resources :chapters 
end 

하는 경우 'book_chapter'와 'book_chapters'라는 이름의 경로가 있어야합니다. rake routes을 실행하여이를 확인할 수 있습니다.

<%= form_for(@chapter) do |f|%> 

명시 적 양식의 대상 URL을 지정해야하고, 아마도 생성 및 업데이트 시나리오에 대해 서로 다른 URL을 처리 : 당신의 _form.html.erb에서

부분이 라인을 변경해야합니다. 다음과 같이 시도해보세요.

<%= form_for(@chapter, :url => (@chapter.new_record? ? book_chapters_path(@book) : book_chapter_path(@book, @chapter))) do |f| %> 
0

나는 태그에 어떤 URL /app/views/chapters/_form.html.erb

확인에 잘못된 경로가 가정합니다. 책에서 중첩되도록 변경하는 것을 잊었다 고 가정합니다.

당신은 여기뿐만 아니라 _form.html.erb 붙여 넣을 수 있습니다, 그래서 당신은 이러한 방식으로 중첩 된 경로를 사용하는 것 같다

관련 문제