スコープされたルートのrspecコントローラ仕様の「取得」メソッドを回避できないようです。Railsのコントローラで 'get'メソッドを実行すると、モジュールによってスコープされたコントローラの「ルートが一致しません」が返される
私は '訪問者'コントローラのルートをスコープして、訪問者のモジュールの名前空間内にあり、ルーティングのルートにあるようにしています。したがって、 '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
アプリ/コントローラ/ビジター/
class Visitor::InquiriesController < Visitor::BaseController
def new
end
end
inquiries_controller.rbときI私は次のエラーを取得する仕様を実行します。 (:URL =>「お問い合わせ/新しい」、:例えばコントローラ=>「お問い合わせ」)を
No route matches {:controller=>"visitor/inquiries", :action=>"new"}
は、私がgetのためにいくつかの追加のパラメータを追加してみましたが、私はこの問題を回避するように見えることはできません。ブラウザで「お問い合わせ/新着」を押すと、正常に動作し、私のルートが期待通りに機能していることがわかります。
私はrspecの新機能ですので、ここでは理解していない基本的な問題があるかもしれません。それ以外の場合は、これらの「訪問者」コントローラをテストできるように、この問題を突き抜ける方法を探しています。どんな助けもありがとう!
これは分離されていますか?他のルートは機能しますか? – stef
私は 'admin'コントローラ用のコントローラ仕様を試しましたが、 "get:new"は正常に動作しました。これらの「管理者」コントローラとの違いは、ルートのスコープが「管理者」(「管理者/アカウント」など)であることです。 – Mitch
'Visitor :: InquiriesController'は' ApplicationController'から降下する必要がありますか? – zetetic