首页 > 解决方案 > 从 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

标签: ruby-on-railsruby-on-rails-5

解决方案


match 方法在 Rails 5.0 或更高版本中已弃用,原因是鼓励人们仅使用GETand POST.

参考:https ://github.com/rails/rails/issues/5964

您可以使用GETPOST或编辑MATCH路线,如下所示:-

match ':controller/:action/:id', via: [:get, :post]


推荐阅读