2016-11-04 5 views
1

깊이 중첩 된 모델로 form_for를 처리하는 방법을 포함하여 모든 구성 요소를 포함하는 3 중첩 된 양식의 예제를 찾으려고 몇 주 동안 둘러 보았습니다. Rails는 처음이지만 컨트롤러, 모델 및 뷰 연결을 보여주는 Group-> Project-> Tasks와 같은 항목에 대해 트리플 중첩 된 form_for의 예를 게시 할 수 있다면 좋아할 것입니다. Tasks와 함께 힘든 시간을 가짐 form_for. 감사.레일 : 트리플 중첩 된 양식 예

답변

0

글쎄, 당신이 고려할 수

일이 될 것이다 .. 나는 수준 이상의 깊이가 .. URL을 정말 빨리 탈출구 손을 얻을 중첩하지 않는 것이 좋습니다 솔직히 말해서 :

resources :groups do 
    resources :projects, except: [:index], controller: 'groups/projects 
end 

resources :projects, except: [:index], controller: 'groups/projects do 
    resources :tasks, except: [:index], controller: projects/tasks 
end 
그런 다음 컨트롤러 폴더에 다음 디렉토리를 작성해야

class Groups::ProjectsController < ApplicationController 

end 

class Projects::TasksController < ApplicationController 

end 

:

다음 컨트롤러는 같을 것이다

groups(folder) => projects_controller.rb 
projects(folder) => tasks_controller.rb 

그런 다음 views 디렉토리에서 동일한 작업을 수행하고 각각의 부모에게보기를 중첩시킵니다. 양식에

, 당신은이 환상적인 링크 http://guides.rubyonrails.org/routing.html

입니다

form_for(@group) do |f| 
form_for(@group, @project) do |f| 
form_for(@project, @task) do |f| 

처럼 뭔가를 할 것이라고하지만, 난 강력하게 당신이 루트의 깊은 중첩을하지 않는 것이 좋습니다 것입니다.

희망이 도움이됩니다.

+0

감사합니다. Shawn. Groups-> Projects-> Tasks parent-child가 설정된 경우 경로를 깊이 중첩하지 않으려면 어떻게해야할까요? 깊은 중첩 및 얕은 라우팅을 피하는 기사를 보았습니다. 몇 번 시도해 보았지만 동일한 form_for 문제가 발생했습니다. 어떤 도움을 주셔서 감사합니다! 다시 한 번 감사드립니다! – CAKFinn