Я пытаюсь написать спецификацию, которая тестирует контроллер с пространством имен, назовем его Admin::FooController
. Моя спецификация называется admin_foo_controller_spec.rb
. В спецификации я пытаюсь написать очень простую спецификацию, чтобы увидеть, может ли она получить действие контроллера.
describe "GET 'index'" do
it "should be successful" do
get 'index'
response.should be_success
end
end
Но вместо этого я получаю сообщение об ошибке:
Failure/Error: get 'index'
No route matches {:controller=>"admin/foo"}
Для другого действия у меня есть в основном тот же тест, и я получаю, что ответ не успешен. В реальном веб-приложении я могу получить доступ к этим URL-адресам. Одна вещь, которую я должен упомянуть, это то, что это не ресурс RESTful (он не имеет смысла как таковой), так что на самом деле это просто группа связанных административных действий, поэтому в моем файле route.rb это в основном похоже на
namespace :admin do
scope "foo" do
match "action1" => "foo#action1"
match "action2" => "foo#action2"
match "/index" => "foo#settings"
match "settings" => "foo#settings"
end
end
Любые идеи, что я делаю неправильно? Кажется, что пространство имен вызывает проблемы с рельсами, особенно для новичка вроде меня. Спасибо!