2013-12-23 3 views
2

내 중첩 된 리소스에 대해 작동하도록 my form_for를 가져올 수 없으며 미칠 수 있습니다.레일 4 중첩 된 리소스가 form_for 작동을 얻을 수 없습니다

경로 :

namespace :teacher do 
    resources :lessons do 
     resources :questions 
     resources :invites 
     resources :responses 
    end 
end 

응용 프로그램/뷰/교사/질문/_form.html.haml :

= simple_form_for [:teacher, @question], :html => { :class => 'form-horizontal form-lineup' } do |f| 

    .. 

인덱스, 쇼, 올바르게 행동 모든 일을 파괴한다. 호출 할 때 만 편집 작업이 실패

teachers/1/questions/1/edit 

예외 : 사용자가 제공 한 경로 정의에

No route matches {:action=>"show", :controller=>"teacher/questions", :teacher_id=>#<Teacher::Question id: 1, teacher_id: 5, user_id: nil, name: "asdf", email: "dsafsd", expire_at: "2013-12-23 19:36:00", created_at: "2013-12-23 19:36:25", updated_at: "2013-12-23 19:36:25">, :id=>nil, :format=>nil} missing required keys: [:id] 

답변

1

주둔이 질문에 대한 편집 경로가 teacher/lessons/1/questions/1/edit하지 teachers/1/questions/1/edit해야한다.

당신은 경로에 네임 스페이스를 사용하는 방법에 대한 가이드를 참조 수 : http://guides.rubyonrails.org/routing.html#controller-namespaces-and-routing

양식은 아마 다음과 같아야합니다

= simple_form_for [:teacher, @lesson, @question], :html => { :class => 'form-horizontal form-lineup' } do |f| 

또는 시도 :

= simple_form_for @question, :html => { :class => 'form-horizontal form-lineup' }, url: edit_teacher_lesson_question_path(@lesson, @question), method: :put do |f| 

당신이 만약 이 경로 teachers/1/questions/1/edit을 생성하려면 다음과 같이 경로를 정의해야합니다.

resources :teachers do 
    resources :questions 
end 
+0

이 문서는 또한 현재 다중 구현/잡지/: magazine_id/ads \t을 명시하고 있습니다. 문제는 내 _form에서 줄을 form_for 것 같습니다 라우팅 자체가 괜 찮 아 요 (그것은이 form_for 태그를 제거 할 때 편집 폼을 보여줍니다) :( – Rubytastic

+0

좋아, writeup에 대 한 귀하의 포인트 감사를 볼 것이다. 그 경우? namespace : teacher do resource : teacher? – Rubytastic

+0

'teachers/1/questions/1/edit' 경로를 만들려면 다음과 같이 경로를 정의해야합니다. 'resources : teachers do resources : 질문 end' – Gjaldon