0

スコープ ルートの rspec コントローラ スペックで「get」メソッドを回避できないようです。

「訪問者」コントローラーのルートをスコープして、「訪問者」モジュールの名前空間内にあるが、ルーティングのルートにあるようにします。したがって、'mysite.com/foo' は Visitor::FooController に移動します。

config/routes.rb

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

仕様/コントローラー/訪問者/問い合わせ_コントローラー_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"}

get にいくつかの追加パラメーターを追加しようとしました (例: :url => 'inquiries/new'、:controller => 'inquiries') が、この問題を回避できないようです。ブラウザで「inquiries/new」を押すと問題なく動作し、ルートが期待どおりに機能していることを示しています。

私はrspecが初めてなので、ここで理解していない基本的な問題があるかもしれません。それ以外の場合は、この問題を乗り越えて、これらの「ビジター」コントローラーをテストできる方法を探しています。どんな助けでも大歓迎です!

4

2 に答える 2

1

翌日コンピュータを再起動したところ、問題は解決しました。問題を引き起こしている Spork に何らかの問題があったようです。この質問を削除できるかどうかはわかりませんが、おそらく Stackoverflow に多くの価値を提供するものではありません。

于 2011-02-24T00:57:27.537 に答える
-1

config/routes.rb のコメントを外して次の行を見てください: match ':controller(/:action(/:id(.:format)))' これで動作するはずです

于 2011-01-07T16:16:02.913 に答える