Ошибка маршрута не соответствует спецификации application_controller

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

  •  05-07-2019
  •  | 
  •  

Вопрос

У меня есть спецификация application_controller, которая не работает, так как я удалил маршрут контроллера / действия из route.rb. Я получаю следующую ошибку:

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

У меня было много тестов, которые не были выполнены таким же образом, но я смог их исправить, включив правильные параметры в вызов get. Так, например, если я хотел получить стандартный маршрут показа для постов в моей спецификации, мне пришлось изменить

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

К сожалению, сейчас я не уверен, что передать спецификации контроллера приложения. Я включил свой тест ниже.

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
Это было полезно?

Решение

Рассматривайте ApplicationController как абстрактный класс, не предназначенный для использования в запросах. Все новые сгенерированные контроллеры будут наследоваться от ApplicationController, так что это хорошее место для совместного использования поведения.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top