1. 程式人生 > >Rails中重寫Active Record字段屬性

Rails中重寫Active Record字段屬性

col attr record span 需要 AC code end div

 系統重構或升級時偶爾會碰到需要重寫某個字段的情況,例如:

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

Rails中重寫Active Record字段屬性