Ошибка «Нет совпадений маршрутов»? - PullRequest
18 голосов
/ 07 января 2011

Я новый Rspec и только что начал с генерации нового контроллера на Rails 3. Он генерирует некоторые тесты Rspec по умолчанию. У меня есть вопрос о том, как заставить их пройти, хотя. Я вижу этот тест в своем терминале "

1) BuildingsController GET 'show' должен быть успешным

 Failure/Error: get 'show'
 No route matches {:controller=>"buildings", :action=>"show"}
 # ./spec/controllers/buildings_controller_spec.rb:17:in `block (3 levels) in <top (required)>'

Однако я не понимаю, почему это происходит, потому что я уже создал этот маршрут («ресурсы: здания»), и я запустил rake routes и убедился, что он там есть.

building GET /buildings/:id(.:format) {: action => "show",: controller => "Buildings"}

Что необходимо сделать, чтобы пройти? Вот тест между прочим:

  describe "GET 'show'" do
    it "should be successful" do
      get 'show'
      response.should be_success
    end
  end

1 Ответ

38 голосов
/ 07 января 2011

Вам необходимо передать идентификатор существующего здания: get :show, :id => @building.id

Маршруты жалуются на это, потому что :id не является обязательным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...