Rails rake test возвращает сообщение об ошибке - PullRequest
1 голос
/ 06 января 2010

Я новичок в rails и получаю следующее сообщение, когда запускаю тест рейка. Это приложение, основанное на движке сообщества rails.

Я попытался создать тестовое приложение, чтобы убедиться, что мои гемы и т. Д. В порядке, и я могу успешно запустить тест rake в этом приложении.

Было бы замечательно, если бы кто-то мог пролить свет на то, что идет не так ...

  /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/whiny_nil.rb:52:in `method_missing': undefined method `merge' for nil:NilClass (NoMethodError)
  from /home/eakkas/NetBeansProjects/hello_ce/vendor/plugins/community_engine/app/controllers/users_controller.rb:17
  from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
  from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
  from /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:158:in `require_without_desert'
  from /usr/lib/ruby/gems/1.8/gems/desert-0.5.3/lib/desert/ruby/object.rb:8:in `require'
  from /usr/lib/ruby/gems/1.8/gems/desert-0.5.3/lib/desert/ruby/object.rb:32:in `__each_matching_file'
  from /usr/lib/ruby/gems/1.8/gems/desert-0.5.3/lib/desert/ruby/object.rb:7:in `require'
  from /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:265:in `require_or_load'
  from /usr/lib/ruby/gems/1.8/gems/desert-0.5.3/lib/desert/rails/dependencies.rb:27:in `depend_on'
  from /usr/lib/ruby/gems/1.8/gems/desert-0.5.3/lib/desert/rails/dependencies.rb:26:in `each'
  from /usr/lib/ruby/gems/1.8/gems/desert-0.5.3/lib/desert/rails/dependencies.rb:26:in `depend_on'
  from /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:136:in `require_dependency'
  from /usr/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/initializer.rb:414:in `load_application_classes'
  from /usr/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/initializer.rb:413:in `each'
  from /usr/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/initializer.rb:413:in `load_application_classes'
  from /usr/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/initializer.rb:411:in `each'
  from /usr/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/initializer.rb:411:in `load_application_classes'
  from /usr/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/initializer.rb:197:in `process'
  from /usr/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/initializer.rb:113:in `send'
  from /usr/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/initializer.rb:113:in `run'

Ответы [ 4 ]

1 голос
/ 06 января 2010

Ошибка никогда не бывает достаточно информации, чтобы уйти в одиночку. однако, такие простые вещи, вы уже запустили sudo rake gems:install?

также я вижу эту строку ниже

app/controllers/users_controller.rb line 17

нам нужно увидеть ваш контроллер, так как он выглядит.

и что произойдет, если вы просто используете rake?

0 голосов
/ 10 августа 2011

В строке 17 вашего пользовательского контроллера у вас будет что-то вроде @ some_variable.do_something

Дело в том, что @some_variable - это экземпляр (объект) класса с именем Nil, у которого нет метода .do_something.

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

Посмотрите на контроллер, чтобы увидеть, что он ожидает, и убедитесь, что вы делаете все, что нужно, чтобы дать ему то, что ему нужно. С предоставленной вами информацией, к сожалению, невозможно дать вам больше информации о том, что вам нужно сделать, чтобы решить проблему

0 голосов
/ 10 августа 2011

Похоже, вы пытаетесь вызвать "слияние" на ноль.

Вы должны включить строку из вашего users_controller, чтобы сообщить нам, что код делает в этот момент. Может быть, у вас есть что-то вроде:

params[:widget].merge(some_hash)

и что вы вызываете это, даже когда params [: widget] пуст (т.е. никакие параметры не были отправлены). Если это так, то вам просто нужно сделать это:

(params[:widget] || {}).merge(some_hash)
0 голосов
/ 21 февраля 2010

Я знаю, что это было открыто некоторое время ....

Я знаю, что CE в настоящее время не совместим с Rails 2.3.5 (лучшая версия Rails для поддержки - 2.3.4) Может в этом проблема?

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