2011-12-11 12 views
2

의 원인이 form_for, 나는 작업에 대해 다음 edit.html.erb 파일이 코드 :루비 레일 코드를 내 루비에서 경로 오류

<%= form_for @task do |f| %> 
    <%= fl.label :title %><br /> 
<% end %> 

문제는 편집 페이지로 이동하려고 할 때 오류가 발생한다는 것입니다. 오류는 "정의되지 않은 task_path"라고 말합니다. 따라서 Rails가 내 작업의 경로를 제대로 식별하지 못한다고 말할 수 있습니다.

프로그램의 구조는 많은 목록이 있고 각 목록에는 목록이 있습니다.

resources :lists do 
    resources :tasks 
end 

하는 방법이 form_for 내가 /리스트 /에서 작업을 편집하기 위해 노력하고 있음을 확인하기 위해 어떻게해야합니까 : 경로 파일은이 방법으로 구조를 선언 list_id로/작업/: TASK_ID/편집?

도움 주셔서 감사합니다.

답변

6

당신은 Nested Resources을 사용하고 있습니다. 양식을 사용하는 적절한 방법은 부모를 지정하는 것입니다.

<%= form_for [@list, @task] do |f| %> 
    <%= f.label :title %><br /> 
<% end %> 
+1

이 발견 사람에게 그냥 메모, 내가 그랬던 것처럼, 중첩 된 자원 _which에 도움을 찾고 명명 된 route_이있다 : 당신은 지정해야합니다 있도록 레일, 배열에서 폼의 URL을 추론 할 수 없습니다 URL은 명시 적으로 form_for (@task, url : my_custom_named_list_task_path (@list))와 같은 형태로 나타납니다. 다음에 따라 : http://stackoverflow.com/questions/1159107/rails-nested-resource-issue – Leo