2010-12-31 2 views
0

Я не могу работать вокруг метода get в моих спецификациях контроллера rspec для моих маршрутов с областью.«get» метод в тестах контроллера Rails, бросающий «никакие совпадения маршрутов» для контроллера, ограниченного модулем

Я просматриваю маршруты для своих «посетительских» контроллеров, чтобы они находились в пространстве имен модулей «посетитель», но находятся в корне маршрутизации. Итак, «mysite.com/foo» отправляется в Visitor :: FooController.

конфигурации/routes.rb

scope :module => 'visitor' do 
    resources :inquiries 
end 

спецификации/контроллеры/посетитель/inquiries_controller_spec.rb

require 'spec_helper' 

describe Visitor::InquiriesController do 
    describe 'GET new' do 
    it 'should render template visitor/inquiries/new' do 
     get :new 
    end 
    end 
end 

приложение/контроллеры/посетитель/inquiries_controller.rb

class Visitor::InquiriesController < Visitor::BaseController 
    def new 
    end 
end 

Когда я запустите spec, я получаю следующую ошибку.

No route matches {:controller=>"visitor/inquiries", :action=>"new"} 

Я пытался добавить некоторые дополнительные параметры GET (например: URL => «запросы/новых»,: контроллер => «запросы»), но я не могу показаться, чтобы обойти эту проблему. Нажатие «запросов/новых» с моим браузером прекрасно работает и показывает, что мои маршруты работают так, как ожидалось.

Я новичок в rspec, так что может быть какая-то фундаментальная проблема, которую я не понимаю здесь. В противном случае я ищу способ преодолеть эти проблемы, чтобы проверить эти «посетительские» контроллеры. Любая помощь приветствуется!

+0

Разве это изолировано? Работают ли другие маршруты? – stef

+0

Я просто попробовал спецификацию контроллера для контроллера «admin», и «get: new» работал нормально. Разница с этими контроллерами «admin» заключается в том, что маршруты ограничены «администратором» (например, «admin/accounts»). – Mitch

+0

Может быть, 'Посетитель :: ЗапросыКонтроллер' должен спуститься с' ApplicationController'? – zetetic

ответ

1

Проблема был исправлен, когда я перезапустил свой компьютер на следующий день. Кажется, что со Spork возникла какая-то проблема, которая вызывала проблему. Я не уверен, что этот вопрос можно удалить, но, вероятно, он не дает большой ценности Stackoverflow.

-1

Посмотрите на ваш конфиг/routes.rb раскомментируйте последующая линия: матч ': контроллер (/: действия (/: идентификатор (:. Формат))) Теперь он должен работает

+0

Не делайте этого. Он предоставляет все действия контроллера для запросов GET, которые не подлежат защите CSRF. –