1

宿題をやっていますが、RestFul 以外のルートに問題があります。私の仕様は次のとおりです。

require 'spec_helper'

describe MoviesController do
  describe 'searching TMDb' do
    before :each do
      @fake_results = [mock('Movie'), mock('Movie')]
    end
    it 'should call the model method that performs TMDb search' do
      Movie.should_receive(:find_in_tmdb).with('Star Wars').
        and_return(@fake_results)
      get :search_similar_movies, { :search_terms => 'Star Wars' }
    end
  end
end

config/routes.rb には次のものがあります。

resources :movies
  'movies/search_similar_movies/:search_terms'

しかし、自動テストを実行すると、次で始まるエラーが表示されます。

/usr/local/lib/ruby/gems/1.9.1/gems/actionpack-3.1.0/lib/action_dispatch/routing/mapper.rb:181:in `default_controller_and_action': missing :action (ArgumentError)

config/routes.rb に問題があることは明らかです。これを解決する方法は?

4

1 に答える 1

2

あなたのルートは次のようなものでなければなりません

resources :movies do
    get 'search_similar_movies', :on => :collection
end

また

match 'movies/search_similar_movies/:search_terms' => 'movies#search_similar_movies', :via => :get

于 2012-04-04T10:34:05.003 に答える