Rails 关于 to_param 的问题

leveyzhu · 2012年03月16日 · 最后由 Rei 回复于 2012年03月17日 · 2489 次阅读

我把 to_param 的返回值改成 name,然后 controller 的 id 参数会变成 name,但是当我修改 user 的 name 的时候,故意让 name 不符合 model 的验证,出错,这次返回的 id 是当前的 name,但是第二次出错的时候,竟然返回的 id 是出错的 name,而不是未修改前的 name。。。

出错后不是直接 render 么?怎么会有什么 id?

#1 楼 @ywencn render 到 edit 页面,然后把出错的 id(也就是不存在)给带过去,导致 edit 页面找不到对应 id 的记录。。。

出错之后直接 render ,不会走 edit 的 action。LZ 肯定用了 redirect,或者把查询逻辑写在了页面。

#3 楼 @Rei 是 render 的,render 'edit'...

哦,可能 render 的时候用对象构造表单,所以表单的 to_param 到了错误的。

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