Как ссылаться на это имя пути в Rails 3.2? - PullRequest
0 голосов
/ 04 марта 2019

У меня есть следующие маршруты. Rb

resource :user, :only => [ :edit, :update ] do
  collection do
    get :tax_info
    get :payment_info
    put :payment_info

и я хотел бы сослаться на get payment_info с помощью средства сопоставления rspec, например:

      expect(response).to redirect_to(user_payment_info)

Каким будет правильный способссылаться на этот путь?Я пробовал user_payment_info и edit_user_payment_info?

Редактировать # 1

Показать вывод rake routes на этом контроллере

enter image description here

1 Ответ

0 голосов
/ 04 марта 2019

Вам не хватает части _path, которую генерирует рельсы для всех маршрутов.Ваш rspec matcher должен выглядеть следующим образом:

expect(response).to redirect_to(user_payment_info_path)

Информация, возвращаемая при запуске rake routes, будет выглядеть примерно так:

                  GET   /users/:id(.:format)         user#show
    tax_info_user GET   /user/tax_info(.:format)     users#tax_info
payment_info_user GET   /user/payment_info(.:format) users#payment_info
                  PUT   /user/payment_info(.:format) users#payment_info
        edit_user GET   /user/edit(.:format)         users#edit
             user PATCH /user(.:format)              users#update
                  PUT   /user(.:format)              users#update

Вы можете видеть слевастолбец, который обозначает префикс для помощников url и path, которые собирается сгенерировать rails. Это можно увидеть в документации по маршрутизации Rails 3.2.

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