Я искал несколько недель, пытаясь найти пример тройных вложенных форм, которые включают в себя все компоненты, в том числе, как обрабатывать form_for с глубоко вложенной моделью. Довольно редко для Rails, но хотелось бы, чтобы кто-то мог показать пример тройного вложенного form_for для чего-то вроде Group-> Project-> Tasks, отображающего соединение с контроллером, моделью и представлением. Имея трудное время с Задачей form_for. Благодарю.Rails: пример тройных вложенных форм
1
A
ответ
0
Ну, если честно, я не рекомендую вложенности более чем на один уровень .. URLs получить выход из руки очень быстро ..
то, что вы можете рассмотреть вопрос будет:
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
, а затем в каталоге представлений вы сделаете то же самое и вложите представления в соответствующий родитель.
в ваших формах, вы могли бы сделать что-то вроде
form_for(@group) do |f|
form_for(@group, @project) do |f|
form_for(@project, @task) do |f|
Это фантастическая ссылка http://guides.rubyonrails.org/routing.html
, но я настоятельно рекомендую избегать глубокой вложенности маршрутов.
надеюсь, что это поможет!
Спасибо, Шон. Если заданы настройки «Родители-дети» Groups-> Projects-> Tasks, что бы вы сделали, чтобы избежать глубокого вложения маршрутов, если вы строили это? Я видел статьи об избежании глубокого гнездования и неглубокой маршрутизации, пробовал пару раз, чтобы понять это, но столкнулся с некоторыми из тех же проблем form_for. Любая помощь приветствуется! Еще раз спасибо! – CAKFinn