Aucune route ne correspond à une erreur avec la spécification application_controller

StackOverflow https://stackoverflow.com/questions/1611591

  •  05-07-2019
  •  | 
  •  

Question

J'ai une spécification application_controller qui échoue depuis que j'ai supprimé la route contrôleur / action de routes.rb. J'obtiens l'erreur suivante:

No route matches {:controller=>"application", :action=>"index"}

De nombreux tests ont échoué de la même manière, mais j'ai pu les résoudre en incluant les paramètres corrects dans l'appel get. Ainsi, par exemple, si je voulais obtenir la route d’affichage standard pour les articles de mes spécifications, je devais changer

get :show to get :show, :id => '1'

Malheureusement, je ne suis pas sûr maintenant de ce qu'il faut transmettre pour les spécifications du contrôleur d'application. J'ai inclus mon test ci-dessous.

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
Était-ce utile?

La solution

Considérez ApplicationController en tant que classe abstraite non destinée à être utilisée pour les demandes. Tous les nouveaux contrôleurs générés hériteront d'ApplicationController, ce qui en fait un endroit agréable pour mettre un comportement partagé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top