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

fayannie · March 19, 2012 · Last by fayannie replied at March 19, 2012 · 2630 hits

比如要显示一张图片(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

You need to Sign in before reply, if you don't have an account, please Sign up first.