2010-10-28 11 views
7

tengo un recurso anidado, configuración como esta:Rspec2 y los carriles 3 - Vista de especificaciones de enrutamiento de Recursos anidados

resources :chickens do 
     resources :eggs 
end 

Los puntos de vista de la EggsController están bajo puntos de vista/huevos, pero:

describe "eggs/index.html.erb" do 

genera un error "No route matches {: action =>" create ",: controller =>" eggs "} en el procesamiento de llamadas. ¿Cómo obtengo que RSpec encuentre la ruta correcta (anidada) para las especificaciones de vista?

Como nota al margen, ¿hay alguna forma de especificar un recurso anidado para el generador de andamios de controlador Rails 3?

+0

Hable sobre oportuna: ¿encontró una respuesta a su segunda pregunta sobre el generador? – Brian

+0

No encontré nada a tiempo, y todo lo que realmente pude encontrar fue un proyecto realmente viejo: https://github.com/phorsfall/rspec_on_rails_nested_scaffold –

Respuesta

2

La prueba se ve bien para mí ...

Por casualidad tiene usted un formulario en su huevos/index.html.erb para la creación de nuevos huevos que aún no pueden ser cableados correctamente? Parece que puede estar tratando de representar la vista de índice pero está fallando porque la vista intenta construir una ruta que no existe. Debería asegurarse de que el formulario utiliza la ruta de recursos anidados correcta. ¿La representación aparece cuando la cargas en el navegador?

+0

Tenías razón en que el problema está en agregar un nuevo enlace en la vista (eliminar elimina la falla), pero la ruta (new_chicken_egg_path) funciona en el navegador. Por cierto, estoy haciendo una asignación (: chicken, @chicken) en la especificación, no es que la ruta _explícitamente_ lo tome como parámetro. params [: chicken_id] = @chicken también se está configurando. Resulta que estoy usando factory_girl para esto. –

+0

Ah. Estoy usando form_for ([@ chicken, @egg]), así que verifico si eso está funcionando. –

+0

Todo bien ahora. Comencé a obtener una ruta no nueva para el nuevo, pero simplemente agregué @chicken como un param al método new_chicken_egg_path. ¡Gracias! –

Cuestiones relacionadas