Rails中重写Active Record字段属性

Posted 小芬喵

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

以上是关于Rails中重写Active Record字段属性的主要内容,如果未能解决你的问题,请参考以下文章

Rails 4 - 从已过滤的 Active Record 查询中删除属性

URL 中的 Rails slugs - 使用 Active Record 模型帖子的 Title 属性而不是 ID

Rails使用电子邮件和其他字段设计身份验证

如何更改 Rails 中 Active Record 的默认时区?

脱离rails 使用Active Record

Postgres / Rails Active Record - 查询四舍五入的浮点值