assert_redirect_to работает как положено.Вместо этого, похоже, ваш ReviewsController перенаправляет в неожиданные места.assert_redirected_to, кажется, функционирует как надо.И все ваши ошибки связаны с тем, что URL-адрес, на который было перенаправлено действие, не соответствует URL-адресу, заданному assert_redirected_to.
В частности:
ReviewsController перенаправляетplace_path(assigns(:place))
.Что несовместимо со стандартным рабочим процессом Rails.Утверждается, что place_review_path(assigns(:place), assigns(:review))
ReviewsController перенаправляет на place_reviews_path(assigns(:place))
, что соответствует стандартному рабочему процессу Rails.Утверждает, что ожидает place_review_path(assigns(:place), assigns(:review))
.Однако, поскольку действие уничтожения удаляет идентификатор назначений (: review), place_review_path(assigns(:place), assigns(:review))
не сможет сгенерировать правильный URL, который объясняет нечетные символы в сообщении об ошибке.
Перенаправляет ReviewsControllerдо place_path(assings(:place))
.Опять же, это несовместимо со стандартным рабочим процессом Rails.Assert ожидает place_review_path(assigns(:place), assigns(:review))
Короткая версия: если вы не отклонились от соглашений Rails, первый и третий перечисленные сбои вашего контроллера перенаправляют в неожиданное место.Второе ошибочное утверждение просто неверно.