名前空間を持つコントローラーをテストする仕様を書こうとしています。それを と呼びましょう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"}
別のアクションについても、基本的に同じテストを行いましたが、応答が成功していないことがわかりました。実際の webapp では、これらの URL に問題なくアクセスできます。私が言及する必要があることの 1 つは、これは RESTful リソースではなく (1 つとして意味をなさない)、実際には関連する管理アクションのグループにすぎないことです。したがって、私の routes.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
私が間違っていることはありますか?特に私のような初心者にとっては、ネームスペースがレールに問題を引き起こしているようです。ありがとう!