Подтвердить что ты не робот

Странная ошибка в рельсах - отсутствует помощник

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

Ошибка:

Отсутствует помощник хелпер файла//пользователи/xxxx/sites/xxxx/app/helpers/accounts_helper.rb_helper.rb

Ive попробовал обновить драгоценные камни, удалить рельсы и переустановить, проверять имена помощников и везде, где есть помощники. Ive также просмотрел журналы git и проверил недавно измененный код. Не повезло.

Трассировка стека

Started GET "/" for 127.0.0.1 at 2015-01-09 17:53:57 -0700
  ActiveRecord::SchemaMigration Load (1.1ms)  SELECT "schema_migrations".* FROM "schema_migrations"

AbstractController::Helpers::MissingHelperError - Missing helper file helpers//users/xxxx/sites/xxxx/app/helpers/accounts_helper.rb_helper.rb:
  actionpack (4.2.0) lib/abstract_controller/helpers.rb:151:in `rescue in block in modules_for_helpers'
  actionpack (4.2.0) lib/abstract_controller/helpers.rb:148:in `block in modules_for_helpers'
  actionpack (4.2.0) lib/abstract_controller/helpers.rb:144:in `modules_for_helpers'
  actionpack (4.2.0) lib/action_controller/metal/helpers.rb:93:in `modules_for_helpers'
  actionpack (4.2.0) lib/abstract_controller/helpers.rb:108:in `helper'
  actionpack (4.2.0) lib/action_controller/railties/helpers.rb:17:in `inherited'
  app/controllers/application_controller.rb:1:in `<top (required)>'
  activesupport (4.2.0) lib/active_support/dependencies.rb:457:in `block in load_file'
  activesupport (4.2.0) lib/active_support/dependencies.rb:647:in `new_constants_in'
  activesupport (4.2.0) lib/active_support/dependencies.rb:456:in `load_file'
  activesupport (4.2.0) lib/active_support/dependencies.rb:354:in `require_or_load'
  activesupport (4.2.0) lib/active_support/dependencies.rb:494:in `load_missing_constant'
  activesupport (4.2.0) lib/active_support/dependencies.rb:184:in `const_missing'
  app/controllers/pages_controller.rb:1:in `<top (required)>'
  activesupport (4.2.0) lib/active_support/dependencies.rb:457:in `block in load_file'
  activesupport (4.2.0) lib/active_support/dependencies.rb:647:in `new_constants_in'
  activesupport (4.2.0) lib/active_support/dependencies.rb:456:in `load_file'
  activesupport (4.2.0) lib/active_support/dependencies.rb:354:in `require_or_load'
  activesupport (4.2.0) lib/active_support/dependencies.rb:494:in `load_missing_constant'
  activesupport (4.2.0) lib/active_support/dependencies.rb:184:in `const_missing'
  activesupport (4.2.0) lib/active_support/inflector/methods.rb:261:in `block in constantize'
  activesupport (4.2.0) lib/active_support/inflector/methods.rb:259:in `constantize'
  activesupport (4.2.0) lib/active_support/dependencies.rb:566:in `get'
  activesupport (4.2.0) lib/active_support/dependencies.rb:597:in `constantize'
  actionpack (4.2.0) lib/action_dispatch/routing/route_set.rb:69:in `controller_reference'
  actionpack (4.2.0) lib/action_dispatch/routing/route_set.rb:59:in `controller'
  actionpack (4.2.0) lib/action_dispatch/routing/route_set.rb:38:in `serve'
  actionpack (4.2.0) lib/action_dispatch/journey/router.rb:43:in `block in serve'
  actionpack (4.2.0) lib/action_dispatch/journey/router.rb:30:in `serve'
  actionpack (4.2.0) lib/action_dispatch/routing/route_set.rb:802:in `call'
  bullet (4.14.0) lib/bullet/rack.rb:10:in `call'
  meta_request (0.3.4) lib/meta_request/middlewares/app_request_handler.rb:13:in `call'
  meta_request (0.3.4) lib/meta_request/middlewares/meta_request_handler.rb:13:in `call'
  rack (1.6.0) lib/rack/etag.rb:24:in `call'
  rack (1.6.0) lib/rack/conditionalget.rb:25:in `call'
  rack (1.6.0) lib/rack/head.rb:13:in `call'
  actionpack (4.2.0) lib/action_dispatch/middleware/params_parser.rb:27:in `call'
  actionpack (4.2.0) lib/action_dispatch/middleware/flash.rb:260:in `call'
  rack (1.6.0) lib/rack/session/abstract/id.rb:225:in `context'
  rack (1.6.0) lib/rack/session/abstract/id.rb:220:in `call'
  actionpack (4.2.0) lib/action_dispatch/middleware/cookies.rb:560:in `call'
  activerecord (4.2.0) lib/active_record/query_cache.rb:36:in `call'
  activerecord (4.2.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:647:in `call'
  activerecord (4.2.0) lib/active_record/migration.rb:378:in `call'
  actionpack (4.2.0) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
  activesupport (4.2.0) lib/active_support/callbacks.rb:88:in `_run_callbacks'
  activesupport (4.2.0) lib/active_support/callbacks.rb:734:in `_run_call_callbacks'
  activesupport (4.2.0) lib/active_support/callbacks.rb:81:in `run_callbacks'
  actionpack (4.2.0) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
  actionpack (4.2.0) lib/action_dispatch/middleware/reloader.rb:73:in `call'
  actionpack (4.2.0) lib/action_dispatch/middleware/remote_ip.rb:78:in `call'
  better_errors (2.1.0) lib/better_errors/middleware.rb:84:in `protected_app_call'
  better_errors (2.1.0) lib/better_errors/middleware.rb:79:in `better_errors_call'
  better_errors (2.1.0) lib/better_errors/middleware.rb:57:in `call'
  rack-contrib (1.2.0) lib/rack/contrib/response_headers.rb:17:in `call'
  meta_request (0.3.4) lib/meta_request/middlewares/headers.rb:16:in `call'
  web-console (2.0.0) lib/action_dispatch/debug_exceptions.rb:18:in `middleware_call'
  web-console (2.0.0) lib/action_dispatch/debug_exceptions.rb:13:in `call'
  actionpack (4.2.0) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
  railties (4.2.0) lib/rails/rack/logger.rb:38:in `call_app'
  railties (4.2.0) lib/rails/rack/logger.rb:20:in `block in call'
  activesupport (4.2.0) lib/active_support/tagged_logging.rb:68:in `block in tagged'
  activesupport (4.2.0) lib/active_support/tagged_logging.rb:26:in `tagged'
  activesupport (4.2.0) lib/active_support/tagged_logging.rb:68:in `tagged'
  railties (4.2.0) lib/rails/rack/logger.rb:20:in `call'
  actionpack (4.2.0) lib/action_dispatch/middleware/request_id.rb:21:in `call'
  rack (1.6.0) lib/rack/methodoverride.rb:22:in `call'
  rack (1.6.0) lib/rack/runtime.rb:18:in `call'
  activesupport (4.2.0) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
  rack (1.6.0) lib/rack/lock.rb:17:in `call'
  actionpack (4.2.0) lib/action_dispatch/middleware/static.rb:113:in `call'
  rack (1.6.0) lib/rack/sendfile.rb:113:in `call'
  rack-mini-profiler (0.9.2) lib/mini_profiler/profiler.rb:300:in `call'
  railties (4.2.0) lib/rails/engine.rb:518:in `call'
  railties (4.2.0) lib/rails/application.rb:164:in `call'
  rack (1.6.0) lib/rack/lock.rb:17:in `call'
  rack (1.6.0) lib/rack/content_length.rb:15:in `call'
  rack (1.6.0) lib/rack/handler/webrick.rb:89:in `service'
  /Users/Hank/.rvm/rubies/ruby-2.2.0-rc1/lib/ruby/2.2.0/webrick/httpserver.rb:138:in `service'
  /Users/Hank/.rvm/rubies/ruby-2.2.0-rc1/lib/ruby/2.2.0/webrick/httpserver.rb:94:in `run'
  /Users/Hank/.rvm/rubies/ruby-2.2.0-rc1/lib/ruby/2.2.0/webrick/server.rb:294:in `block in start_thread'
4b9b3361

Ответ 1

Проблема, похоже, была введена в последней версии ruby, ruby ​​2.2.0.

Попробуйте этот эксперимент:

в консоли rails/или irb:

[1] pry(main)>File.expand_path ("./") 
=> "/users/xxxx/Sites/xxxx"

и в окне терминала:

]$ pwd
/users/xxxx/sites/xxxx

Посмотрите на другой случай? Если вы это понимаете, то в глубине активной поддержки регулярное выражение идет на юг. Одно исправление заключается в удалении каталога "sites" и воссоздании. Он также может работать, чтобы переименовать каталог сайтов с помощью finder, переименовать его в "foobar", а затем вернуться к "сайтам".

НТН.

(с этой страницы в Японии) http://translate.google.com/translate?hl=en&sl=ja&u=http://d.hatena.ne.jp/jiikko/20150108&prev=search

И когда я отлаживал это с другим человеком, достаточно было иметь имя каталога смешанного случая в пути. Мы переименовали его в "farknerd", а затем обратно оригинал, за исключением всего нижнего регистра, и он сработал.

Ответ 2

Для меня папка "сайты" нужно было переименовать, а не весь каталог.

из моего корневого каталога пользователя Я сделал это...

mv sites sites1
mv sites1 sites

Ответ 3

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

Ответ 4

Шахта также была проблемой. Сначала я был в папке C:\users\pxxx\projects\odot, которая выбрасывала вышеуказанную ошибку. Когда я перешел на C:\Users\Pxxx\projects\odot, он работал

Ответ 5

Проблема..

Для меня такая же проблема с ошибкой

 "missing helper file app/helpers/application_helper.rb_helper.rb"

Приложение было расположено в дереве каталогов

/Users/grantsayer/Documents/Work/recipes

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

1. Среда Ruby

Гранты-MacBook-Pro: Рецепты grantsayer $irb

2.2.0: 001 >

2.2.0: 002 > File.expand_path ( "./" )         = > "/Пользователи/гранты/Документы/Работа/Рецепты"

2. Терминал Unix

Гранты-MacBook-Pro: Рецепты грантодателя $pwd      /Пользователей/grantsayer/Документы/Работа/Рецепты

На этом этапе запуск сервера rails и переход на http://localhost:3000 привели к ошибке об отсутствующем помощнике приложения. Эта ошибка, как описывали другие, представляется ошибкой в ​​рубине, вызывающей преобразование случая в пути к файлу.

Я решил проблему, переименовав папку recipes в Рецепты, чтобы проверка среды ruby ​​в irb соответствовала локальной файловой системе. p >

Ответ 6

У меня была та же проблема, которая, по-видимому, связана с dropbox, но не чувствительна к регистру, как другие предложили.

После ответа @Rob вывод [1] pry(main)>File.expand_path ("./") привел к:

/Users/xxxx/dropbox/xxxx

и вывод ]$ pwd также привел к:

/Users/xxxx/dropbox/xxxx

Следуя инструкциям @Beengie, из корневого каталога моих пользователей я сделал:

mv Dropbox Dropbox1
mv Dropbox1 Dropbox

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

Ответ 7

У меня была одна и та же проблема, но не созданные пользователем каталоги, в которых в них было заглавное письмо... только /Users.

Я попробовал обновление до ruby ​​2.2.1 - это не исправить.

Я очень нерешительно исправил это, выполнив одно и то же "исправление" с учетом регистра в моем каталоге /Users:

cd /
sudo mv Users users1
sudo mv users1 users

Мне еще предстоит увидеть, что это сломает что-то еще...

Ответ 8

У меня была такая же проблема с использованием порошковой жемчужины. Вот как я его исправил:

powder unlink
powder link

Ответ 9

Это так долго исказило меня. Я не нашел никакой радости при попытке переименовать файлы или каталоги.

Однако я нашел очень легкое решение. Просто зайдите в основной каталог вашего проекта и запустите 'bundle install'. Он установил все зависимости gem (без перезаписи каких-либо данных, которые я написал), которые эффективно устраняли любые проблемы.

Открыл сервер rails и ура, нормальное обслуживание было возобновлено.

Надеюсь, что это поможет!

Ответ 10

Я запускаю 2.2.0 и сделал это как @Rob и обнаружил, что это был мой корневой каталог приложений, который имел проблему, так как у него было заглавное имя. Я также не поддерживаю приложение в каталоге "Сайты", но в другом каталоге sibling.

Ответ 11

У той же проблемы на Ruby 2.2.0 и мне удалось ее исправить, изменив структуру папок с

/Users/xxx/Documents/Ruby/xxxx

к

/Users/xxx/Documents/Ruby/xxxx

В нижнем регистре имя папки

Ответ 12

Я получил ту же ошибку, что и выше, но это было не из-за проблемы. В итоге это произошло из-за комбинации вещей. У меня было два менеджера версий ruby ​​- rvm и rbenv - и я использовал старую установку gem. Мне пришлось удалить rvm (как удалить RVM (Ruby Version Manager) из моей системы?) И переустановить rbenv (brew переустановить rbenv) и обновить до последней версии ruby. Затем мне пришлось обновить rubygems (gem update -system). Затем переустановили все драгоценные камни и перезагрузили, и все было исправлено.

По сути, мой рубиновый менеджер указывал на старую версию ruby ​​и использовал устаревшую версию установщика gem (2.2.0). Возможно, вы сможете исправить ситуацию только с обновлением до rubygems.

Мне понадобилось полтора дня, чтобы решить эту проблему. Надеюсь, это сэкономит время и разочарование.

Ответ 13

У меня была тире в одном из моих каталогов: миссия, которая также вызывала ошибку. В дополнение к тому, чтобы все ваши родительские каталоги были в нижнем регистре (включая изменение рабочего стола на рабочий стол), также убедитесь, что единственными символами в именах ваших каталогов являются буквы.

Ответ 14

Я получил эту ошибку после создания каталога helpers в первый раз.

Проблема исчезла после запуска spring stop и повторила попытку.

Ответ 15

в моем случае я использовал окна. Используя оболочку Git, я продолжал получать эту ошибку, пытаясь установить администратор драгоценных камней из разумом. Команда, которая давала мне ошибку, "AbstractController:: Helpers:: MissingHelperError", была:

$ rails generate administrate:install

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