Rus*_*sty 5 ruby ruby-on-rails ruby-on-rails-4
据我所知,Rails 4 不支持match关键字。
但我想创建一个默认的通用路由,如下所示
match ':controller(/:action(/:id))(.:format)', :via => :get
Run Code Online (Sandbox Code Playgroud)
当我在routes.rb中使用上面的代码时,它会抛出以下错误:
Missing :action key on routes definition, please check your routes
Run Code Online (Sandbox Code Playgroud)
有人可以帮我如何在 Rails 4 中实现这一点吗?
是的,支持,来自Rails Routing from the Outside In指南
3.7 HTTP动词约束
一般来说,您应该使用 get、post、put、patch 和 delete 方法来约束到特定动词的路由。您可以使用带有 :via 选项的 match 方法来一次匹配多个动词:
将“照片”匹配到:“照片#show”,通过:[:get, :post]
您可以使用 via: :all: 将所有动词匹配到特定路由:
将“照片”匹配到:“照片#show”,通过::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]
Run Code Online (Sandbox Code Playgroud)
如果您将此行添加到您的路线中:
match ':controller/:action/(:id)', via: :get
Run Code Online (Sandbox Code Playgroud)
它将产生以下路线:
Prefix Verb URI Pattern Controller#Action
GET /:controller/:action(/:id)(.:format) :controller#:action
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2515 次 |
| 最近记录: |