【发布时间】:2017-02-12 16:00:53
【问题描述】:
我有带有警告的 config/routes.rb
DEPRECATION WARNING: Using a dynamic :controller segment in a route is deprecated and will be removed in Rails 5.1.
不知道如何重写以删除警告。 任何了解如何做的文件。或新代码 谢谢。
Rails.application.routes.draw do
post ':controller(/:action(/:id))(.:format)'
get ':controller(/:action(/:id))(.:format)'
get '/logout' => 'sessions#destroy', :as => 'logout'
get '/auth/failure' => 'sessions#failure'
post '/auth/:provider/callback' => 'sessions#create'
resources :sessions
resources :identities
root :to => 'myapp#index'
end
【问题讨论】:
-
对“post ':controller(/:action(/:id))(.:format)' 的新重写得到 ':controller(/:action(/:id))(. :format)' "?
-
在我看来,从网上冲浪来看,动态动作/控制器已被淘汰,别无选择。我想这与应用程序的安全性有关。到目前为止,我发现的最佳解决方案是将所有操作列入白名单,从而将它们全部写出来,或循环遍历它们,如重复问题的答案所示。
-
并且:github.com/rails/rails/issues/27231,@TheR2(在问题中)有一个针对
:action的解决方法,通过一些搜索也许这也可以针对:controller完成。