我有3个嵌套路线:class / post / comments我不知道如何编写_form文件中的form_for

问题描述 投票:0回答:1

如果有2个嵌套路由:post/commentsform_for就像这样(在_form文件中):

 form_for([@post, @post.comments.build])

但在这种情况下,我有3个嵌套路由:class/post/comments,我不知道如何在_form文件中编码它。

或者巢3路线还有其他选择吗?

config/routes.rb

 Rails.application.routes.draw do
  resources :campus do
    resources :salas
  end
  devise_for :users
  resources :cursos do
    resources :publicacions do
      resources :comentarios
    end
  end
  get 'welcome/index'

  root 'welcome#index'

  # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
end
curso_publicacion_comentarios_path  GET /cursos/:curso_id/publicacions/:publicacion_id/comentarios(.:format)    
comentarios#index

POST    /cursos/:curso_id/publicacions/:publicacion_id/comentarios(.:format)    
comentarios#create

new_curso_publicacion_comentario_path   GET /cursos/:curso_id/publicacions/:publicacion_id/comentarios/new(.:format)    
comentarios#new

edit_curso_publicacion_comentario_path  GET /cursos/:curso_id/publicacions/:publicacion_id/comentarios/:id/edit(.:format)   
comentarios#edit

curso_publicacion_comentario_path   GET /cursos/:curso_id/publicacions/:publicacion_id/comentarios/:id(.:format)    
comentarios#show

PATCH   /cursos/:curso_id/publicacions/:publicacion_id/comentarios/:id(.:format)    
comentarios#update

PUT /cursos/:curso_id/publicacions/:publicacion_id/comentarios/:id(.:format)    
comentarios#update

DELETE  /cursos/:curso_id/publicacions/:publicacion_id/comentarios/:id(.:format)    
comentarios#destroy
ruby-on-rails form-for
1个回答
0
投票

只需遵循相同的模式:

form_for([@class, @post, @comment])

但请注意,您的代码存在一些问题:

  • 不要使用class命名变量,关联等等,因为它被Ruby使用,它会让你陷入麻烦。
  • 不要过多地嵌套路线。作为Rails guide says,应避免嵌套超过1级。
  • 不要初始化表单定义中的对象。在控制器操作中执行此操作,否则您将无法显示验证错误。
© www.soinside.com 2019 - 2024. All rights reserved.