Yuv*_*rmi 3 routes ruby-on-rails
我正在寻找一个我的控制器的显示动作根.我可以轻松地做到这一点:
map.root :controller => 'articles', :action => 'index'
Run Code Online (Sandbox Code Playgroud)
当我去localhost:3000 /它列出所有的文章 - 这太棒了!但是,我想要实现的是这样的URL
localhost:3000/1
Run Code Online (Sandbox Code Playgroud)
要显示ID为1的文章.更改路径,以下是我认为我必须做的事情:
map.root :controller => 'articles', :action => 'show'
Run Code Online (Sandbox Code Playgroud)
但它似乎没有用.相反 - 它寻找一个名为的控制器1- 它不存在.
我该怎么做呢?
谢谢!
试试吧 routes.rb
map.connect ':id', :controller => 'articles', :action => 'show'
你需要确保这是一个低优先级的路由,因为它是多么通用.即,将它放在routes.rb文件的底部,但在此部分之上(如果您尚未删除它):
# low-priorty article show route
map.connect ':id', :controller => 'articles', :action => 'show'
# Install the default routes as the lowest priority.
# Note: These default routes make all actions in every controller accessible via GET requests. You should
# consider removing or commenting them out if you're using named routes and resources.
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'
Run Code Online (Sandbox Code Playgroud)
根路由只定义一条路由.不是几个.您可以定义另一条路线
map.connect '/:id', :controller => 'articles', :action => 'show'
如果你想要这种风格的路线,也许资源(http://api.rubyonrails.org/classes/ActionController/Resources.html#M000522)非常适合你.
| 归档时间: |
|
| 查看次数: |
2797 次 |
| 最近记录: |