平时开发过程中,遇到一个问题,具体为update时候,没有修改的参数,在某些浏览器,无法获取值,而修改过的参数,可以正常获取,当然这不妨碍功能,会是判断逻辑复杂。
比如
table.a= params[:a_temp] if params.has_key?(:a_temp)
table.save
这里如果request,也就是params里面没有a_temp, 则table.a 不变。也就是不改变table.a原有值。
有人也就问了
table.a= params[:a_temp]
table.save
我这样也可以啊,对,这也是可以,但是这个是在正常情况下,所有浏览器,每次都会获取form表单里面所有的值,不论是否修改得情况下,没问题。
而有些浏览器,会判断,如果参数没有修改,则request不会加载该参数,那么后台获取不到该值,返回null,或者“”,则出错。
所以,为了避免这种情况,请更改对象属性的时候,判断params是否含有该参数,有,则修改,没有,则不变。
Eric