Kha*_*mad 9 ruby ruby-on-rails ruby-on-rails-3 ruby-on-rails-4
在rails 3匹配关键字正在工作但在rails 4匹配关键字不适用于路由
如何在rails 4中定义这些路由
此代码段正在rails 3中运行
match 'admin', :to => 'access#menu'
match 'show/:id', :to => 'public#show'
match ':controller(/:action(/:id(.:format)))'
Run Code Online (Sandbox Code Playgroud)
我需要轨道4的通用公式,如轨道3
match ':controller(/:action(/:id(.:format)))'
Run Code Online (Sandbox Code Playgroud)
Jon*_*der 13
Rails 4删除了泛型match,你现在必须指定你想要它响应的动词.通常,您将路线定义为:
get ':controller(/:action(/:id(.:format)))' => 'foo#matcher'
Run Code Online (Sandbox Code Playgroud)
如果你想让它使用match来获得多个动词,你可以这样做:
match ':controller(/:action(/:id(.:format)))' => 'foo#matcher', via: [:get, :post]
Run Code Online (Sandbox Code Playgroud)
小智 6
文档中说的是什么:
通常,您应该使用get,post,put和delete方法来约束到特定动词的路由.您可以将match方法与:via选项一起使用以匹配多个动词:
match 'photos', to: 'photos#show', via: [:get, :post]
Run Code Online (Sandbox Code Playgroud)
您可以使用via :: all将所有动词匹配到特定路线:
match 'photos', to: 'photos#show', via: :all
Run Code Online (Sandbox Code Playgroud)