med*_*rts 4 routes slug ruby-on-rails-3
在我的路线文件中,我可以很容易地组合一个看起来像这样的匹配并且工作得很好
match '/:slug/:id' => "pages#show", :id => :id
Run Code Online (Sandbox Code Playgroud)
视图中的链接是这样的
link_to n.name, "/" + n.slug + "/" + n.id.to_s
Run Code Online (Sandbox Code Playgroud)
我宁愿不在URL中包含ID号,所以我希望做类似的事情
match '/:slug' => "pages#show", :slug => :slug
Run Code Online (Sandbox Code Playgroud)
但问题是这并没有向显示控制器的页面提供id.有没有办法使用:slug将它与数据库中的页面匹配,使用此slug查找:id所以我可以将:id传递给控制器?
小智 6
在您的路线中使用此
match "/:slug" => "pages#show"
Run Code Online (Sandbox Code Playgroud)
在你的控制器中使用slug找到页面
@page = Page.find_by_slug(params[:slug])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4023 次 |
| 最近记录: |