Rails:三重嵌套表单示例

时间:2016-11-04 15:11:26

标签: ruby-on-rails nested-forms form-for nested-resources

我已经环顾了几周试图找到包含所有组件的三重嵌套表单的示例,包括如何使用深层嵌套模型处理form_for。 Rails相当新,但是如果有人可以展示一个三重嵌套form_for的例子,比如Group-> Project-> Tasks,显示控制器,模型和视图连接。使用Tasks form_for度过了一段艰难时期。感谢。

1 个答案:

答案 0 :(得分: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

然后您必须在controllers文件夹中创建以下目录:

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

但我强烈建议您避免深度嵌套路线。

希望这有帮助!