Rails 怎么用其它属性在 url 中定位,而不用 id?

fayannie · 2012年03月19日 · 最后由 fayannie 回复于 2012年03月19日 · 2634 次阅读

比如要显示一张图片(id=1, 名称=image01),url 定位:http://localhost:3000/images/1 怎么可以用名称来定位,就是说 url 为:http://localhost:3000/images/image01 ?

我试过在 model 中 set_primary_key :名称 可是这样一来,如果删除了名称=image01 的图片,再上传相同名称的图片就会产生错误,因为主键必须是唯一的,而删除图片的时候主键并没有删除,就好像 id 为主键的时候会一直自增长。

不知道怎么解决这一问题?

@willmouse 谢谢~~已经解决 并且发现如果用:def to_param name end 然后在 controller 中使用 Model.find_by_name(params[:id]),url 中就不会出现 id, 而只有 name. 相关资料:http://railscasts.com/episodes/63-model-name-in-url

需要 登录 后方可回复, 如果你还没有账号请 注册新账号