Почему мой сервер разработки не загружается? default_controller_and_action ': missing: action (ArgumentError)
Я - Ruby nuby (и новый для Stack Overflow), работающий над Rails Tutorial от Michael Hartl и неожиданно мое развитие сервер не будет загружаться и будет продолжать работать. Консоль также не загружается, а спецификация Rspec/выводит ошибки/исключения. Я включаю некоторые результаты с терминала, ваша помощь очень ценится.
Exiting
/Users/ameedachowdhury/.rvm/gems/[email protected]/gems/actionpack-3.0.3/lib/action_dispatch/routing/mapper.rb:164:in `default_controller_and_action': missing :action (ArgumentError)
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/actionpack-3.0.3/lib/action_dispatch/routing/mapper.rb:68:in `normalize_options!'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/actionpack-3.0.3/lib/action_dispatch/routing/mapper.rb:51:in `initialize'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/actionpack-3.0.3/lib/action_dispatch/routing/mapper.rb:261:in `new'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/actionpack-3.0.3/lib/action_dispatch/routing/mapper.rb:261:in `match'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/actionpack-3.0.3/lib/action_dispatch/routing/mapper.rb:1112:in `match'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/actionpack-3.0.3/lib/action_dispatch/routing/mapper.rb:1297:in `match'
from /Users/ameedachowdhury/rails_projects/railstutorial/config/routes.rb:11:in `block in <top (required)>'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/actionpack-3.0.3/lib/action_dispatch/routing/route_set.rb:233:in `instance_exec'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/actionpack-3.0.3/lib/action_dispatch/routing/route_set.rb:233:in `draw'
from /Users/ameedachowdhury/rails_projects/railstutorial/config/routes.rb:1:in `<top (required)>'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:235:in `load'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:235:in `block in load'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:225:in `block in load_dependency'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:596:in `new_constants_in'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:225:in `load_dependency'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:235:in `load'
from /Users/ameedachowdhury/.rvm/gems/[email protected]orial/gems/railties-3.0.3/lib/rails/application.rb:127:in `block in reload_routes!'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/railties-3.0.3/lib/rails/application.rb:127:in `each'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/railties-3.0.3/lib/rails/application.rb:127:in `reload_routes!'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/railties-3.0.3/lib/rails/application.rb:120:in `block in routes_reloader'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/activesupport-3.0.3/lib/active_support/file_update_checker.rb:32:in `call'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/activesupport-3.0.3/lib/active_support/file_update_checker.rb:32:in `execute_if_updated'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/railties-3.0.3/lib/rails/application/finisher.rb:51:in `block (2 levels) in <module:Finisher>'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/railties-3.0.3/lib/rails/application/finisher.rb:52:in `call'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/railties-3.0.3/lib/rails/application/finisher.rb:52:in `block in <module:Finisher>'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/railties-3.0.3/lib/rails/initializable.rb:25:in `instance_exec'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/railties-3.0.3/lib/rails/initializable.rb:25:in `run'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/railties-3.0.3/lib/rails/initializable.rb:50:in `block in run_initializers'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/railties-3.0.3/lib/rails/initializable.rb:49:in `each'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/railties-3.0.3/lib/rails/initializable.rb:49:in `run_initializers'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/railties-3.0.3/lib/rails/application.rb:134:in `initialize!'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/railties-3.0.3/lib/rails/application.rb:77:in `method_missing'
from /Users/ameedachowdhury/rails_projects/railstutorial/config/environment.rb:5:in `<top (required)>'
from /Users/ameedachowdhury/rails_projects/railstutorial/config.ru:3:in `require'
from /Users/ameedachowdhury/rails_projects/railstutorial/config.ru:3:in `block in <main>'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/rack-1.2.1/lib/rack/builder.rb:46:in `instance_eval'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/rack-1.2.1/lib/rack/builder.rb:46:in `initialize'
from /Users/ameedachowdhury/rails_projects/railstutorial/config.ru:1:in `new'
from /Users/ameedachowdhury/rails_projects/railstutorial/config.ru:1:in `<main>'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/rack-1.2.1/lib/rack/builder.rb:35:in `eval'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/rack-1.2.1/lib/rack/builder.rb:35:in `parse_file'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/rack-1.2.1/lib/rack/server.rb:162:in `app'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/rack-1.2.1/lib/rack/server.rb:248:in `wrapped_app'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/rack-1.2.1/lib/rack/server.rb:213:in `start'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/railties-3.0.3/lib/rails/commands/server.rb:65:in `start'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/railties-3.0.3/lib/rails/commands.rb:30:in `block in <top (required)>'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/railties-3.0.3/lib/rails/commands.rb:27:in `tap'
from /Users/ameedachowdhury/.rvm/gems/[email protected]/gems/railties-3.0.3/lib/rails/commands.rb:27:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
ameeda-chowdhurys-macbook:railstutorial ameedachowdhury$
Ответы
Ответ 1
Когда я столкнулся с этой проблемой, это произошло потому, что один из маршрутов в routes.rb
имел слэш (/
) вместо хэша (#
) при использовании синтаксиса controller#action
(я использовал "контроллер" /action ", который был неправильным).
Например, я случайно имел root :to => 'home/index'
. Он должен был быть root :to => 'home#index'
.
Я нашел это решение в здесь.
Ответ 2
Это вызвано неправильными маршрутами -
Проверьте свою конфигурацию /routes.rb, даже если один маршрут указан неправильно, тогда эта ошибка будет сброшена!
Также убедитесь, что маршрут
'/url/for/something' => 'controller#action'
или
root :to => 'controller#action
Ответ 3
Я тоже Ruby nuby и имел ту же ошибку во время работы над Rails Tutorial от Michael Hartl. Если вы похожи на меня, вы можете просто ввести весь код, который появляется в книге, с чтением или пониманием текста. Не все поэтапно. При демонстрации случая верблюда и змеи Hartl показывает коробку со следующим кодом
$ rails generate controller static_pages ...
Здесь Hartl просто пытается противопоставить инструкции для создания контроллера StaticPages, используя случай змеи, а не случай верблюда, что было сделано в листинге 3.4. Точки "..." - это просто отредактировать или усечь остальные инструкции для строки cmd. Я набрал именно то, что было показано и получилось в файле маршрутов:
SampleApp::Application.routes.draw do
get "static_pages/..."
get "static_pages/home"
get "static_pages/help"
откройте файл маршрутов, удалите
get "static_pages/..."
сохраните файл маршрутов и снова попробуйте запустить сервер rails.
Я также уничтожил "rails generate controller static_pages..." Не уверен, что это имело какой-то эффект, но теперь все работает.
Ответ 4
По умолчанию вы получите следующее:
Rails.application.routes.draw do
get 'static_pages/...'
get 'static_pages/home'
get 'static_pages/help'
ТОЛЬКО УДАЛЯЙТЕ ЭТО:
get 'static_pages/...'
И У ВАС ЕСТЬ ЭТО В ФАЙЛЕ ROUTES.RB
Rails.application.routes.draw do
get 'static_pages/home'
get 'static_pages/help'
Ответ 5
В моем случае это было вызвано суффиксом slash '/' на некоторых моих маршрутах. Например.
post 'load_query/'
После удаления этого суффикса в
post 'load_query'
он работал.
Ответ 6
измените корень по умолчанию в файле routes.rb.
get "static_pages#home" TO root to: 'static_pages#home'
Я пережил ту же проблему, и вышеупомянутое изменение сработало для меня.