He pasado toneladas de form_for preguntas de recursos anidados y no puedo hacer que ninguna de las soluciones funcione para mí. Pensé que era hora de hacer una pregunta personalizada.formulario para el recurso anidado
Tengo dos modelos, trabajos y preguntas, trabajos has_many preguntas y preguntas belong_to jobs.
Utilicé el andamiaje para crear los controladores y los modelos anidados los recursos en las rutas.rb.
root :to => "pages#home"
resources :jobs do
resources :questions
end
get "pages/home"
get "pages/about"
get "pages/contact"
class Job < ActiveRecord::Base
has_many :questions
end
class Question < ActiveRecord::Base
belongs_to :job
end
En este momento estoy intentando tener acceso a '/ trabajos/1/preguntas/nueva' y seguir recibiendo el NoMethodError
en las preguntas # nueva
Empecé con el error No hay coincidencias ruta {: controlador => "preguntas"} cuando el código fue
<%= form_for(@question) do |f| %>
sé que esto está mal, así que empecé a probar otros combos y ninguna de ellas trabajó.
He intentado
<%= form_for([@job.questions.build ]) do |f| %>
que
<%= form_for([@job, @job.questions.build ]) do |f| %>
que
<%= form_for(@job, @question) do |f| %>
Entre un montón de otras combinaciones y que no están funcionando.
Aquí hay un enlace a mis rutas rastrillo: git clone https://gist.github.com/1032734
Cualquier ayuda es apreciada y quiero saber si necesita más información, gracias.
El primer opción trabajada, gracias! - ¿Qué significa que la aprobación de la URL solucione esto? Además, el job_id para la pregunta no se está actualizando en el DB, ¿alguna idea de cómo solucionarlo? FYI: la edición devolvió este error: Ninguna ruta coincide con {: controller => "questions"} – Igrabes
Cuando no se pasa la opción ': url', Rails intenta resolverlo por sí mismo. No sabe que 'Question' es siempre un sub-recurso de' Job', porque no siempre tiene que ser así. Con respecto al 'job_id' que no se actualiza, si está utilizando asignación masiva, probablemente lo esté ignorando. Llame 'question.job = new_job' por separado. No obstante, no puedo ver tu código. – d11wtq
Hola @ d11wtq, no estoy del todo seguro de lo que quieres decir con Call question.job = new_job - ¿A dónde va eso? Aquí está mi repo [link (https://github.com/igrabes/InterQ), si eso ayuda. – Igrabes