2016-11-04 106 views
1

我已經環顧了幾個星期,試圖找到一個包含所有組件的三重嵌套窗體的示例,其中包括如何使用深度嵌套模型處理form_for。相當新的Rails,但會愛如果有人可以展示一個三重嵌套form_for的例子像Group-> Project-> Tasks,顯示控制器,模型和視圖連接。在任務form_for中遇到困難。謝謝。Rails:三重嵌套窗體示例

回答

0

嗯,說實話,我不建議嵌套多個級別深..網址獲取方式不可收拾真的很快..

東西,你可能要考慮是:

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目錄中,你會做同樣的事情,並將視圖嵌套到它們各自的父級。

在表單中,你會做這樣的事情

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

這是一個夢幻般的鏈接http://guides.rubyonrails.org/routing.html

,但我強烈建議您避免路線的深層嵌套。

希望這有助於!

+0

謝謝,肖恩。鑑於組織 - >項目 - >任務親子關係,如果您正在構建這個項目,您將如何避免深度嵌套路線?我曾看過有關避免深層嵌套和淺層路由的文章,嘗試了幾次才解決問題,但遇到了一些相同的form_for問題。任何幫助表示讚賞!再次感謝! – CAKFinn