Error de ruta no coincide con la especificación de application_controller
-
05-07-2019 - |
Pregunta
Tengo una especificación de application_controller que está fallando desde que eliminé la ruta del controlador / acción de route.rb. Recibo el siguiente error:
No route matches {:controller=>"application", :action=>"index"}
Tuve muchas pruebas que fallaron de la misma manera, pero pude corregirlas al incluir los parámetros correctos en la llamada get. Así que, por ejemplo, si quería obtener la ruta estándar del show para publicaciones en mi especificación, tenía que cambiar
get :show to get :show, :id => '1'
Lamentablemente, ahora no estoy seguro de qué transmitir a las especificaciones del controlador de la aplicación. He incluido mi prueba a continuación.
describe ApplicationController do
it "should find the latest published posts and assign them for the view" do
Post.should_receive(:latest).and_return(@posts)
get :index
assigns[:posts].should == @posts
end
it "should find the latest approved comments and assign them for the view" do
Comment.should_receive(:latest).and_return(@comments)
get :index
assigns[:comments].should == @comments
end
end
Solución
Considere el ApplicationController como una clase abstracta que no debe usarse para solicitudes. Todos los nuevos controladores generados heredarán de ApplicationController, por lo que es un buen lugar para poner el comportamiento compartido.