gpt4 book ai didi

ruby-on-rails - 通用路由匹配 ':controller(/:action(/:id))(.:format)' 在 Rails 4 中不可用。出路?

转载 作者:数据小太阳 更新时间:2023-10-29 08:11:45 29 4
gpt4 key购买 nike

据我所知,我知道 Rails 4 不支持 ma​​tch 关键字。

但我想创建一个默认的通用路由,如下所示

match ':controller(/:action(/:id))(.:format)', :via => :get

当我在 routes.rb 中使用上面的代码时,它会抛出以下错误:

Missing :action key on routes definition, please check your routes

谁能帮我如何在 Rails 4 中实现它。

最佳答案

是的,支持,来自Rails Routing from the Outside In指南

3.7 HTTP 动词约束

通常,您应该使用 get、post、put、patch 和 delete 方法来将路由限制到特定动词。您可以使用带有 :via 选项的 match 方法一次匹配多个动词:

match 'photos', to: 'photos#show', via: [:get, :post]

您可以使用 via: :all: 将所有动词匹配到特定路由

match 'photos', to: 'photos#show', via: :all

来自文档:

http://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/Base.html#method-i-match

# sets :controller, :action and :id in params
match ':controller/:action/:id', via: [:get, :post]

如果您将此行添加到您的 route :

match ':controller/:action/(:id)', via: :get

它将产生以下路线:

Prefix Verb URI Pattern                        Controller#Action
GET /:controller/:action(/:id)(.:format) :controller#:action

关于ruby-on-rails - 通用路由匹配 ':controller(/:action(/:id))(.:format)' 在 Rails 4 中不可用。出路?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32603618/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com