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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我有3个嵌套路线:class / post / comments我不知道如何编写_form文件中的form_for相关的知识,希望对你有一定的参考价值。

如果有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
答案

只需遵循相同的模式:

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

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

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

以上是关于我有3个嵌套路线:class / post / comments我不知道如何编写_form文件中的form_for的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 7 - 嵌套资源路由中的范围问题

带有前缀和资源的laravel嵌套路由不起作用

Rails多个嵌套表单问题

如何从 Laravel 上的预加载中获取嵌套数据?

如何在 Ktor 中构建嵌套路由?

NavLink 未填充嵌套路由的活动类