Кажется, я не могу обойти метод get в своих спецификациях контроллера rspec для маршрутов с ограниченной областью действия.
Я определяю маршруты для своих контроллеров «посетителей», чтобы они находились в пространстве имен модуля «посетитель», но находились в корне маршрутизации. Таким образом, mysite.com/foo переходит к Visitor::FooController.
config/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
Когда я запускаю спецификацию, я получаю следующую ошибку.
No route matches {:controller=>"visitor/inquiries", :action=>"new"}
Я попытался добавить некоторые дополнительные параметры для получения (например, :url => 'запросы/новый', :controller => 'запросы'), но я не могу обойти эту проблему. Нажатие «запросы/новые» в моем браузере работает нормально и показывает, что мои маршруты работают должным образом.
Я новичок в rspec, поэтому здесь может быть какая-то фундаментальная проблема, которую я не понимаю. В противном случае я ищу способ обойти эти проблемы, чтобы я мог протестировать эти контроллеры «посетителей». Любая помощь приветствуется!
Visitor::InquiriesController
должен происходить отApplicationController
? - person zetetic   schedule 31.12.2010