首页 > 代码库 > 改变rails的路由中默认的id
改变rails的路由中默认的id
目的: /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 usernameend
每个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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。