Rails中重写Active Record字段属性

 系统重构或升级时偶尔会碰到需要重写某个字段的情况,例如:

1. 读取user的name字段时,实际返回name_new字段

class User <  ActiveRecord::Base 
 def name
    attribute(:name_new)
  end
end

2. 修改属性时做一些其他操作(这种场景也可以使用回调来实现)

class User < ActiveRecord::Base  
  def name=(value)  
    # actions  
    write_attribute(:name,value)  
  end
  
  def name  
    read_attribute(:name)  
  end  
end

猜你喜欢

转载自www.cnblogs.com/xiaoff/p/9052270.html