Помощник тестов интеграции Rails 3 (модель) _path (@instance) помощник - PullRequest
1 голос
/ 31 августа 2011

У меня есть класс Doc со стандартными маршрутами, созданными генератором скаффолдов.В коде я использую

docs_path(@doc)  # => /docs/7

, который прекрасно работает.

В моем интеграционном тесте я использую:

get  docs_path(@doc) #=> /docs.7

, который не работает вообще нормально.

Это то же самое для других контроллеров, которые используют стандартные маршруты для моделей рельсов.

Использование:

get "/docs/7" 

в коде интеграционного теста работает нормально, но когда яон пытается обработать страницу с помощью помощника «_path» или «_url», затем обрабатывает их аналогичным образом, что приводит к ошибкам.

Примечание. Этот код работает нормально, когда я открываю реальную страницу на моемноутбук в среде разработки.

: Мне очень грустно, когда я пытаюсь делать правильные вещи, писать тесты, а тесты содержат ошибки, которых нет в обычной среде.Как вы справляетесь с этим ???

Использование rails 3.0.8.

Вот соответствующие строки из rake.routes

docs        GET      /docs(.:format)          {:action=>"index", :controller=>"docs"}
            POST     /docs(.:format)          {:action=>"create", :controller=>"docs"}
new_doc     GET      /docs/new(.:format)      {:action=>"new", :controller=>"docs"}
edit_doc    GET      /docs/:id/edit(.:format) {:action=>"edit", :controller=>"docs"}
doc         GET      /docs/:id(.:format)      {:action=>"show", :controller=>"docs"}
            PUT      /docs/:id(.:format)      {:action=>"update", :controller=>"docs"}
            DELETE   /docs/:id(.:format)      {:action=>"destroy", :controller=>"docs"}

Почему это происходит?Могу ли я это исправить?

1 Ответ

2 голосов
/ 01 сентября 2011

«Стандартный» маршрут будет состоять в том, что это единственный именованный маршрут: doc_path. Вы используете docs_path. Используйте имя в единственном числе, когда вы хотите создать ссылку на конкретный документ, и используйте множественное число, когда вы хотите получить список из них.

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