美文网首页
ActiveRecord model

ActiveRecord model

作者: SecondRocker | 来源:发表于2015-11-29 22:57 被阅读103次

    本周碰到了一个问题,需要重写model的字段的get方法,但在重写方法中,某些情况需要获取该字段原来的值(数据库中值),本来想使用alias先给方法起个别名,然后在重写方法中调用别名,结果报错,这才想ActiveRecord的方法是动态生成的,定义的时候没有该字段的get方法,询问bruce.wu,给出使用model[:attribute]可获取数据库中值的解决办法。

    平时查文档感觉rails guide最方便使用,而rails guide对ActiveRecord 的attributes介绍不多,因此总结下这方面的用法备忘。

    • model.attributes获取实例的所有属性的hash形式
    • model.attributes= 传入hash设置实例的相应属性.
    • model[:attribute]获取单个属性的值,注意:这里需要symbol
    • model.attributes[attribute] 同上,但attribute为字符串
    • model.changed 返回实例是否发生变化
    • model.attribute_changed? 实例的该字段是否发生变化
    • model.new_record? 实例是否为新添加对象(非数据库中记录)
    • model.changes 返回发生变化字段的hash,形式为attribute:[原内容,现内容]

    相关文章

      网友评论

          本文标题:ActiveRecord model

          本文链接:https://www.haomeiwen.com/subject/bwddhttx.html