у меня есть 3 вложенных маршрута: класс / пост / комментарии, и я не знаю, как кодировать form_for в файле _form - PullRequest
0 голосов
/ 27 апреля 2019

Если a имеет 2 вложенных маршрута: post/comments, form_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

1 Ответ

0 голосов
/ 27 апреля 2019

Просто следуйте той же схеме:

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

Но учтите, что у вас есть некоторые проблемы с вашим кодом:

  • Не используйте class для именования переменных,ассоциация и так, потому что она используется Ruby и может привести к неприятностям.
  • Не вкладывайте слишком много маршрутов.Как говорится в Руководстве по Rails , следует избегать вложения более 1 уровня.
  • Не инициализировать объекты в определении формы.Сделайте это в действии контроллера, иначе вы не сможете отобразить ошибку проверки.
...