Я добавил поле username
в свое приложение Rails, которое использует Devise.Я сделал все необходимые шаги, такие как добавление поля в представления, добавление его в модель User
, миграция моей базы данных и т. Д. Теперь, когда я выполняю шаги регистрации вручную, все работает нормально.Но как только я пытаюсь написать функцию в Cucumber, я получаю огромную страницу ошибок.
Вот очень короткий список ошибок, которые я получаю при запуске функции огурца
Scenario: New user registration with valid info # features/user_access.feature:7
When I sign up as a new user with valid info # features/step_definitions/user_access_steps.rb:5
undefined method `username' for #<User:0x00000102f7dcf0> (ActionView::Template::Error)
/Users/Daniel/.rvm/gems/ruby-1.9.2-p136@Flow1/gems/activemodel-3.0.3/lib/active_model/attribute_methods.rb:364:in `method_missing'
/Users/Daniel/.rvm/gems/ruby-1.9.2-p136@Flow1/gems/activerecord-3.0.3/lib/active_record/attribute_methods.rb:46:in `method_missing'
/Users/Daniel/.rvm/gems/ruby-1.9.2-p136@Flow1/gems/actionpack-3.0.3/lib/action_view/helpers/form_helper.rb:1019:in `value_before_type_cast'
/Users/Daniel/.rvm/gems/ruby-1.9.2-p136@Flow1/gems/actionpack-3.0.3/lib/action_view/helpers/form_helper.rb:1007:in `value_before_type_cast'
/Users/Daniel/.rvm/gems/ruby-1.9.2-p136@Flow1/gems/actionpack-3.0.3/lib/action_view/helpers/form_helper.rb:915:in `block in to_input_field_tag'
/Users/Daniel/.rvm/gems/ruby-1.9.2-p136@Flow1/gems/actionpack-3.0.3/lib/action_view/helpers/form_helper.rb:915:in `fetch'
Я выделил ошибку в моем представлении Devise.По какой-то причине огурцу не нравятся следующие строки
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
<%= devise_error_messages! % >
<p><%= f.label :username %><br />
<%= f.text_field :username %></p>
По какой-то причине огурец не будет хорошо играть с: username label и text_field.Все, что я делаю в своих шагах от огурца, это захожу на страницу регистрации и пытаюсь заполнить username
именем.
Есть идеи, что вызвало эту ошибку и как ее исправить?