Метод 'get' в тестах контроллера Rails выдает "нет совпадений маршрутов" для контроллера, ограниченного модулем - PullRequest
0 голосов
/ 31 декабря 2010

Кажется, я не могу обойти метод get в моих спецификациях контроллеров rspec для моих областей действия.

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

config / rout.rb

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

spec / controllers / visitor / 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

app / controllers / visitor / inquiries_controller.rb

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

При запуске спецификации я получаю следующую ошибку.

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

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

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

Ответы [ 2 ]

1 голос
/ 24 февраля 2011

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

0 голосов
/ 07 января 2011

Загляните в ваш конфиг / rout.rb раскомментируйте следующую строку: match ': controller (/: action (/: id (.: format)))' Теперь должно работать

...