Я использую Capybara / Cucumber в Rails 3.2 и сталкиваюсь со странной ошибкой маршрутизации.
У меня определены следующие маршруты:
#routes.rb
namespace :super_user do
...
resources :events do
resources :invites
end
end
...
resources :invites
и следующая функция Cucumber:
@in_progress @current
Scenario: I can invite a USER by email
Given the following event exists:
| Name |
| The Event |
And I go to the event page for "The Event"
And I follow "Invite new user"
And I fill in "invite_email" with "user@domain.com"
...
Страница события (EventsController#show
) содержит ссылку на действие invites#new
:
#app/views/super_user/events/show.html.erb
...
<%= content_for :button_bar do %>
<%= link_to( 'Invite new user', new_super_user_event_invite_path(@event) ) %>
<% end %>
Все работает правильно, когда я проверяю действие /super_user/events/1
вручную, но всякий раз, когда я запускаю огурец, я получаю:
And I follow "Invite new user" # features/step_definitions/web_steps.rb:45
uninitialized constant SuperUser::InvitesController (ActionController::RoutingError)
(eval):2:in `click_link'
./features/step_definitions/web_steps.rb:46:in `/^(?:|I )follow "([^"]*)"$/'
features/create_casino_super_user.feature:24:in `And I follow "Invite new user"'
Почему маршрутизация ведет себя по-разному при использовании огурца / капибары?Как я могу исправить эту функцию?
Соответствующие части bundle list
:
* cucumber (1.0.6)
* cucumber-rails (1.0.2)
* capybara (1.0.1)
* capybara-webkit (0.6.1 dfa0624)
* rails (3.2.1)
EDIT
Примечание: класс InvitesController не являетсяв модуле SuperUser, но, как я уже говорил ранее, он работает при тестировании вручную.