ruby-on-rails – 如何在Rails中将update_attributes与自定义setter方法一起使用?

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 如何在Rails中将update_attributes与自定义setter方法一起使用?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个名为Contact的模型,名为phone_number.我有一些自定义的setter方法,如
def prefix=(num)  
  self.phone_number[3..5] = num  
end

当我调用@ contact.update_attributes({:prefix =>’510′})时,我没有收到任何错误,并且@contact被更改,但更改不会进入数据库.我已经尝试使用attr_accessible来专门允许使用这些setter方法无济于事.

有没有办法让update_attributes为我工作?我正在使用Rails 2.3.8.

解决方法

在进行现场修改时,您必须通知rails已更改属性
def prefix=(num)
  phone_number_will_change!
  self.phone_number[3..5] = num
end

猜你在找的Ruby相关文章