我把 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'...
#4 楼 @LeveyZhu 上码
哦,可能 render 的时候用对象构造表单,所以表单的 to_param 到了错误的。