tengo 2 controladores que he creado usando el generador de andamio carriles. Quería que pueden anidar en una carpeta llamada "demo" y así encontré¿Cómo probar controladores con rutas anidadas usando Rspec?
rails g scaffold demo/flows
rails g scaffold demo/nodes
Entonces decidí nodos nido dentro de los flujos, y ha cambiado mi archivo de rutas de este modo:
namespace :demo do
resources :flows do
resources :nodes
end
end
Pero este cambio resultó en las pruebas rspec para nodos que se rompen con ActionController :: Errores de enrutamiento.
15) Demo::NodesController DELETE destroy redirects to the demo_nodes list
Failure/Error: delete :destroy, :id => "1"
ActionController::RoutingError:
No route matches {:id=>"1", :controller=>"demo/nodes", :action=>"destroy"}
El problema es que rspec está buscando la ruta incorrecta. Se supone que debe buscar "demo/flows/1/nodes". También necesita un modelo simulado para el flujo, pero no estoy seguro de cómo proporcionarlo. Aquí está mi código de ejemplo del archivo generado rspec:
def mock_node(stubs={})
@mock_node ||= mock_model(Demo::Node, stubs).as_null_object
end
describe "GET index" do
it "assigns all demo_nodes as @demo_nodes" do
Demo::Node.stub(:all) { [mock_node] }
get :index
assigns(:demo_nodes).should eq([mock_node])
end
end
Puede alguien ayudarme a entender cómo necesito para proporcionar el modelo de flujo?