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

 

posted @ 2018-05-17 17:39  小芬喵  阅读(164)  评论(0编辑  收藏  举报