代码之家  ›  专栏  ›  技术社区  ›  srboisvert

Ruby、ActiveRecord和遗留数据需要动态地从字符转换为整数

  •  0
  • srboisvert  · 技术社区  · 16 年前

    我有一个遗留数据库,其中整数数据存储为字符,我希望将其视为数字。这是一个地方,有没有快速简单的转换方法?值从0到5,默认为0,因此不存在空值。

    所以我基本上想知道是否有一些activerecord选项可以自动转换列。

    2 回复  |  直到 16 年前
        1
  •  1
  •   Community Mohan Dere    6 年前

    这本书有一节 the ActiveRecord::Base docs 称为“ “这就是这个场景:

    所有列值都可以通过活动记录对象上的基本访问器自动使用,但有时需要专门化此行为。这可以通过覆盖默认访问器(使用与属性相同的名称)并调用 read_attribute(attr_name) write_attribute(attr_name, value)

    还提到了另一种哈希样式语法。

        2
  •  3
  •   DanSingerman    16 年前

    可以使用将字符转换为整数的方法重写列名

    例如

    def my_col
       read_attribute(:my_col).to_i
    end
    

    那么它应该可以无缝地工作

    推荐文章