Usar form_for con recursos anidados
Estoy creando una aplicación para hacer en un intento de hablar con fluidez con Rails. Hay cuatro niveles de jerarquía en mi aplicación.
UsuarioObjetivos (objetivos múltiples por usuario)Tareas (múltiples tareas por objetivo)Subtareas (varias subtareas por tarea)Tengo un formulario de front-end funcional para cada uno de estos que utiliza recursos anidados. My routes.rb tiene algo como esto
resources :goal do
resources :task do
resources :subtask
end
end
Lo que me gustaría hacer ahora es tener todos estos formularios en una de las vistas del controlador de usuario.
Este es el formulario que he intentado crear:
<%= form_for @task, url: {controller: 'task', action: 'create'} do |f| %>
<%= f.label :description %>
<%= f.text_field :description %>
<%= f.submit "Add Goal", class: "btn" %>
<% end %>
Pero termino recibiendo este error
No route matches {:action=>"create", :controller=>"task", :id=>"1"}
El: id => 1 corresponde a la página de usuario en la que estoy (http: // localhost: 3000 / user / 1)
Lo que entiendo es que existe que en ninguna parte he proporcionado el objetivo_id para el que está destinado este paso. No tengo idea de cómo implementar esto.
Otra cosa que he notado es que una respuesta arake routes
muestra muchas rutas URI pero nada para el método POST. No me permite usar una ruta desde allí en elurl:
enform_for
porque no coincide con el método POST.
Entonces mis preguntas son:
¿Cómo enrutar un formulario_para eso cuando tiene recursos anidados?¿Cómo proporcionar la ID del recurso principal mientras uso form_for para que mi acción de creación se enrute correctamente?