Рельсы с Devise в производственном режиме. Не найдено ни одного маршрута [GET] "/ users / sign_out" - PullRequest
0 голосов
/ 15 сентября 2018

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

Я использую рельсы v5.2.1 и ruby ​​v2.4.1 с устройством

Мое приложение работает в режиме разработки абсолютно нормально. Как только я переключаюсь на работу, моя ссылка для выхода из системы завершается с ошибкой Не найдено ни одного маршрута [GET] "/ users / sign_out"

Моя ссылка для выхода из системы должна вызывать УДАЛЕНИЕ, а не ПОЛУЧЕНИЕ

  <%= link_to('Logout', destroy_user_session_path, method: :delete) %>

Вот мои маршруты

$rake routes | grep  sign_out
destroy_user_session DELETE   /users/sign_out(.:format)                devise/sessions#destroy

Я предварительно скомпилировал свои активы с

 rake assets:clobber RAILS_ENV=production
 rake assets:precompile RAILS_ENV=production

Я пробовал следующие варианты конфигурации в различных комбинациях

# devise.rb
config.sign_out_via = :delete

# production.rb
config.public_file_server.enabled = true
config.assets.compile = true

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

Вот полное содержимое журналов, которые запускаются при нажатии на ссылку sign_out

INFO -- : [55a64c1a-feb0-45bb-a8e8-5e3bf5efe461] Started GET "/users/sign_out" for 127.0.0.1 at 2018-09-15 17:02:20 +0200
FATAL -- : [55a64c1a-feb0-45bb-a8e8-5e3bf5efe461]   
FATAL -- : [55a64c1a-feb0-45bb-a8e8-5e3bf5efe461] ActionController::RoutingError (No route matches [GET] "/users/sign_out"):
FATAL -- : [55a64c1a-feb0-45bb-a8e8-5e3bf5efe461]   
FATAL -- : [55a64c1a-feb0-45bb-a8e8-5e3bf5efe461] actionpack (5.2.1) lib/action_dispatch/middleware/debug_exceptions.rb:65:in `call'
actionpack (5.2.1) lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
railties (5.2.1) lib/rails/rack/logger.rb:38:in `call_app'
railties (5.2.1) lib/rails/rack/logger.rb:26:in `block in call'
activesupport (5.2.1) lib/active_support/tagged_logging.rb:71:in `block in tagged'
activesupport (5.2.1) lib/active_support/tagged_logging.rb:28:in `tagged'
activesupport (5.2.1) lib/active_support/tagged_logging.rb:71:in `tagged'
railties (5.2.1) lib/rails/rack/logger.rb:26:in `call'
actionpack (5.2.1) lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
actionpack (5.2.1) lib/action_dispatch/middleware/request_id.rb:27:in `call'
rack (2.0.5) lib/rack/method_override.rb:22:in `call'
rack (2.0.5) lib/rack/runtime.rb:22:in `call'
activesupport (5.2.1) lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call'
actionpack (5.2.1) lib/action_dispatch/middleware/executor.rb:14:in `call'
rack (2.0.5) lib/rack/sendfile.rb:111:in `call'
railties (5.2.1) lib/rails/engine.rb:524:in `call'
puma (3.12.0) lib/puma/configuration.rb:225:in `call'
puma (3.12.0) lib/puma/server.rb:658:in `handle_request'
puma (3.12.0) lib/puma/server.rb:472:in `process_client'
puma (3.12.0) lib/puma/server.rb:332:in `block in run'
puma (3.12.0) lib/puma/thread_pool.rb:133:in `block in spawn_thread'

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

INFO -- : [599f3a59-d3b1-4e0b-a974-a27abda77a0e] Started GET 
"/control_panels" for 127.0.0.1 at 2018-09-15 17:13:15 +0200
INFO -- : [599f3a59-d3b1-4e0b-a974-a27abda77a0e] Processing by 
ControlPanelsController#index as HTML
DEBUG -- : [599f3a59-d3b1-4e0b-a974-a27abda77a0e]   [1m[36mUser Load (1.0ms)[0m  [1m[34mSELECT  "users".* FROM "users" WHERE "users"."id" = $1 ORDER BY "users"."id" ASC LIMIT $2[0m  [["id", 980190963], ["LIMIT", 1]]
INFO -- : [599f3a59-d3b1-4e0b-a974-a27abda77a0e]   Rendering control_panels/index.html.erb within layouts/application
INFO -- : [599f3a59-d3b1-4e0b-a974-a27abda77a0e]   Rendered control_panels/_index.erb (1.2ms)
INFO -- : [599f3a59-d3b1-4e0b-a974-a27abda77a0e]   Rendered control_panels/index.html.erb within layouts/application (1.6ms)
INFO -- : [599f3a59-d3b1-4e0b-a974-a27abda77a0e] Completed 200 OK in 25ms (Views: 3.9ms | ActiveRecord: 1.0ms)
INFO -- : [efbfb389-6227-4e34-bd72-f4febeecf5c2] Started GET "/assets/application-35729bfbaf9967f119234595ed222f7ab14859f304ab0acc5451afb387f637fa.css" for 127.0.0.1 at 2018-09-15 17:13:15 +0200
 FATAL -- : [efbfb389-6227-4e34-bd72-f4febeecf5c2]   
 FATAL -- : [efbfb389-6227-4e34-bd72-f4febeecf5c2] ActionController::RoutingError (No route matches [GET] "/assets/application-35729bfbaf9967f119234595ed222f7ab14859f304ab0acc5451afb387f637fa.css"):
 FATAL -- : [efbfb389-6227-4e34-bd72-f4febeecf5c2]   
 FATAL -- : [efbfb389-6227-4e34-bd72-f4febeecf5c2] actionpack (5.2.1) 
 lib/action_dispatch/middleware/debug_exceptions.rb:65:in `call'
 actionpack (5.2.1) 
 lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
 railties (5.2.1) lib/rails/rack/logger.rb:38:in `call_app'
 railties (5.2.1) lib/rails/rack/logger.rb:26:in `block in call'
 activesupport (5.2.1) lib/active_support/tagged_logging.rb:71:in 
`block in tagged'
 activesupport (5.2.1) lib/active_support/tagged_logging.rb:28:in 
`tagged'
 activesupport (5.2.1) lib/active_support/tagged_logging.rb:71:in 
`tagged'
 railties (5.2.1) lib/rails/rack/logger.rb:26:in `call'
 actionpack (5.2.1) lib/action_dispatch/middleware/remote_ip.rb:81:in 
`call'
 actionpack (5.2.1) lib/action_dispatch/middleware/request_id.rb:27:in `call'
 rack (2.0.5) lib/rack/method_override.rb:22:in `call'
 rack (2.0.5) lib/rack/runtime.rb:22:in `call'
 activesupport (5.2.1) 
 lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call'
 actionpack (5.2.1) lib/action_dispatch/middleware/executor.rb:14:in `call'
 rack (2.0.5) lib/rack/sendfile.rb:111:in `call'
 railties (5.2.1) lib/rails/engine.rb:524:in `call'
 puma (3.12.0) lib/puma/configuration.rb:225:in `call'
 puma (3.12.0) lib/puma/server.rb:658:in `handle_request'
 puma (3.12.0) lib/puma/server.rb:472:in `process_client'
 puma (3.12.0) lib/puma/server.rb:332:in `block in run'
 puma (3.12.0) lib/puma/thread_pool.rb:133:in `block in spawn_thread'```

1 Ответ

0 голосов
/ 15 сентября 2018

Как вы уже правильно указали, маршрут предназначен для метода DELETE, поэтому запрос GET вызывает 404. Помощник link_to, не работающий с параметром method:, обычно означает, что Javascript отключен вваш браузерЧтобы быть в безопасности, используйте button_to вместо link_to.

...