Неопределенный метод «добавить» на шаге огурца, который обычно работает

У меня есть путь:

when /the admin home\s?page/
  "/admin/"

У меня есть сценарий, который проходит:

  Scenario: Let admins see the admin homepage
    Given "pojo" is logged in
    And "pojo" is an "admin"
    And I am on the admin home page
    Then I should see "Hi there."

И у меня есть сценарий, который терпит неудачу:

  Scenario: Review flagged photo
    Given "pojo" is logged in
    And "pojo" is an "admin"
  ...bunch of steps that create stuff in the database...
    And I am on the admin home page
    Then ... the rest of the steps

Шаг, который не удается выполнить во втором случае, — «И я нахожусь на домашней странице администратора», который отлично проходит в первом сценарии.

Вот ошибка, которую я получаю:

And I am on the admin home page                 # features/step_definitions/web_steps.rb:18
  undefined method `add' for {}:Hash (NoMethodError)
  ./app/controllers/admin_controller.rb:13:in `index'
  ./app/controllers/admin_controller.rb:11:in `each'
  ./app/controllers/admin_controller.rb:11:in `index'
  /usr/lib/ruby/1.8/benchmark.rb:308:in `realtime'
  ./features/step_definitions/web_steps.rb:19:in `/^(?:|I )am on (.+)$/'
  features/admin.feature:52:in `And I am on the admin home page'

Это очень странно... почему в первом случае все будет хорошо, а во втором нет, где единственная разница - это набор шагов, которые создают записи в БД?

[редактировать]

Вот шаг добавления материала в базу данных:

Given /^there is a "([^\"]*)" with the following:$/ do |model, table|
  model.constantize.create!(table.rows_hash)
end

person Josiah Kiehl    schedule 12.03.2010    source источник
comment
Просто для полноты: шаг проходит, если я не включаю шаги добавления материала в базу данных.   -  person Josiah Kiehl    schedule 12.03.2010
comment
Что делает admin_controller с 11 по 13 строку?   -  person ajmurmann    schedule 12.03.2010
comment
...ох.... Ладно, неважно. :P Это был долгий день.   -  person Josiah Kiehl    schedule 12.03.2010


Ответы (1)


Неважно, я просто слишком устал, чтобы читать собственное сообщение об ошибке.

person Josiah Kiehl    schedule 12.03.2010