码迷,mamicode.com
首页 > 其他好文 > 详细

改变rails的路由中默认的id

时间:2014-12-12 18:56:53      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   ar   color   os   使用   sp   

目的: /users/2 -> /users/jack

使用to_param方法。

不要改变id到string类型,你需要一个属性是唯一的,比如username,无论什么。

 

在view里面,确保传递的参数不要是id 一定要是model

<td><%= link_to p.name, parse_place_path(p) %></td>

 不是

<td><%= link_to p.name, parse_place_path(p.id) %></td>

 

在model里面,重新 to_param

def to_param
    username
end

 每个model在缺省状态下有一个to_param直

@place = Place.find(params[:id])

接返回id属性,那么我们更改这个就直接返回其他属性,很明了。

在VC的show方法中

@place = Place.find_by_username(params[:id])

这样就可以了。

如果你依旧想使用id但是URL可以不要单纯的id:/users/id 比如:/users/2-jack

那么modle中

def to_param
    "#{id}-#{username}"
end

 VC中

@place = Place.find(params[:id])

 ok了!

 

转自:http://www.cnblogs.com/iosdev/archive/2013/01/14/2859933.html

改变rails的路由中默认的id

标签:style   blog   http   io   ar   color   os   使用   sp   

原文地址:http://www.cnblogs.com/calpar/p/4160223.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!