rails 3:write_attribute和update_attribute之间的区别

问题描述

|| 直到今天我才知道write_attribute ... 看起来好像update_attribute,尽管未调用验证仍在调用:before_save回调,而write_attribute没有。 这两种方法之间有区别吗?     

解决方法

        “ 0”实际上是对数据库的物理调用。您将完全执行
UPDATE
语句。它就像
update_attributes
,但仅用于单个列。
write_attribute
为基于AR的列写入要分配给模型的属性。如果要覆盖基于数据库的属性。
def first_name=(val)
  write_attribute :first_name,val
end
# some_model.first_name => \'whatever val is\'

def first_name=(val)
  @first_name = val
end
# some_model.first_name => nil
我没有广泛研究“ 3”,但是我收集的基于Activerecord的模型处理对基于db的列的分配与运行mill访问器略有不同。     ,        如果要覆盖方法的默认访问器,请使用“ 3”。它实质上是is7ѭ的语法糖。 在“覆盖默认访问器”标题下查看ActiveRecord :: Base文档。 如果您尝试使用
update_attribute
重写文档中的示例,我想它最终将陷入循环。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...