Устройство не работает после обновления, тесты через капибару завершены без сбоев - PullRequest
0 голосов
/ 11 сентября 2011

Я довольно новичок в RoR и запрограммировал несколько вещей перед тем, как открыть Test-Driven-Development. Поэтому я попытался написать несколько тестов с использованием guard-rspec и capybara. Все было хорошо, но я получил некоторые предупреждения об устаревании для devise (имел версию 1.1.rc02), поэтому я обновил его (теперь имеющий последнюю версию 1.4.5).

Это были предупреждения:

Запуск всех спецификаций

DEPRECATION WARNING: Using form_for(:name, @resource) is deprecated. Please use form_for(@resource, :as => :name) instead. (called from _app_views_devise_sessions_new_html_erb___942904761_2291541620_0 at /Users/xonic/Documents/work/ror.ror.at/app/views/devise/sessions/new.html.erb:3)
FDEPRECATION WARNING: Using form_for(:name, @resource) is deprecated. Please use form_for(@resource, :as => :name) instead. (called from _app_views_devise_sessions_new_html_erb___942904761_2291541620_0 at /Users/xonic/Documents/work/ror.ror.at/app/views/devise/sessions/new.html.erb:3)
.DEPRECATION WARNING: Using form_for(:name, @resource) is deprecated. Please use form_for(@resource, :as => :name) instead. (called from _app_views_devise_registrations_new_html_erb__1735759005_2291086140_0 at /Users/xonic/Documents/work/ror.ror.at/app/views/devise/registrations/new.html.erb:3)

Итак, я изменился

<%= form_for(resource_name, resource, :url => registration_path(resource_name)) do |f| %>

до

<%= form_for(resource, :url => registration_path(resource_name)) do |f| %>

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

Я не уверен, что произошло потом, но внезапно, при попытке открыть приложение в браузере, я получаю следующее сообщение об ошибке:

NoMethodError in Slides#index

Showing /Users/xonic/Documents/work/ror.ror.at/app/views/layouts/application.html.erb where line #27 raised:

private method `split' called for #<Class:0x10c023278>
Extracted source (around line #27):

24: 
25:                 <div class="gopro">
26: 
27:                     <% if user_signed_in? %>
28:                         Signed in as <%= link_to current_user.username, user_path(current_user) %>. Not you? <%#, user_slides_path(current_user.username) %>
29:                         <%= link_to "Sign out", destroy_user_session_path %>
30:                     <% else %>

Так очевидно, у Девиз проблемы ... не знаю почему. Самое смешное, что при вызове save_and_open_page во время тестирования приложения открывается окно браузера, в котором приложение отображается правильно и без ошибок.

Guard::RSpec is running, with RSpec 2!
Running all specs
...

Finished in 0.95467 seconds
3 examples, 0 failures

UPDATE: Я видел этот очень похожий вопрос Devise: NoMethod Error & user_signed_in и правильно настроил модель пользователя, так что это не проблема.

Это меня довольно смущает, надеюсь, кто-то там понимает, что происходит Crossing Fingers

Спасибо, xon1c

UPDATE Я исправил это, но stackoverflow не позволит мне ответить на мой собственный вопрос в ближайшие 6 часов из-за отсутствия репутации sigh . Опубликуем решение позже.

1 Ответ

0 голосов
/ 12 сентября 2011

Хорошо, я исправил это (близко к идеальному).Вот что я сделал:

Я вернул git в рабочее состояние и начал с нуля.На этот раз я не использовал строку

gem 'devise', :git => 'git://github.com/plataformatec/devise.git'

в своем Gemfile, вместо этого я только поместил

gem 'devise'

, а затем установил последний гем devise через

gem install devise
rails generate devise:install

Команда установила версию 1.4.5, а не 1.4.7, как раньше.Затем я установил все остальные драгоценные камни, а именно капибару, guard-rspec, factory_girl_rails и launchy.Теперь все работает нормально, кроме этих двух предупреждений:

Running: spec/requests/sign_ups_spec.rb
DEPRECATION WARNING: :name_prefix was deprecated in the new router syntax. Use :as instead. (called from /Users/xonic/Documents/work/ror.ror.at/config/routes.rb:7)
DEPRECATION WARNING: :name_prefix was deprecated in the new router syntax. Use :as instead. (called from /Users/xonic/Documents/work/ror.ror.at/config/routes.rb:7)
.

Finished in 0.16255 seconds
1 example, 0 failures

Ну, пока все работает, я в порядке с предупреждениями, но если кто-нибудь знает, как от них избавиться, пожалуйста,дай мне знать.

Спасибо.

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