ruby-on-rails - 从 2.3 升级到 5.2.3 的路由匹配错误
问题描述
我正在将应用程序从 Rails 2.3 升级到 Rails 5.2.3,并在 routes.rb 中遇到匹配错误
我得到的错误是:ActionController::RoutingError(没有路由匹配[POST]“/”):
actionpack (5.2.3) lib/action_dispatch/middleware/debug_exceptions.rb:65:in `call'
routes.rb 文件是:
FullcalendarAssets::Application.routes.draw do
resource :calendar, :only => [:show]
resources :events
resources :emails
resources :conversations
resources :users
root :to => 'homeowners#login'
match ':controller(/:action(/:id))(.:format)'
end
解决方案
match 方法在 Rails 5.0 或更高版本中已弃用,原因是鼓励人们仅使用GET
and POST
.
参考:https ://github.com/rails/rails/issues/5964
您可以使用GET
和POST
或编辑MATCH
路线,如下所示:-
match ':controller/:action/:id', via: [:get, :post]