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
¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top