我目前正在将 CSV 导入到 activerecord 元素中,但不能选择使用 fastcsv 逐个将元素解析为整数或小数。我可以选择将所有内容解析为 int 或其他,或者全部解析为字符串。我需要将一些列解析为整数,一些作为小数,一些作为字符串。
否则,在我将所有内容解析为字符串后,有没有办法将活动记录中的各个元素转换和更新为新形式?说将值解析为字符串,然后将某些值转换为整数,将其他值转换为 decs 等?
我目前正在将 CSV 导入到 activerecord 元素中,但不能选择使用 fastcsv 逐个将元素解析为整数或小数。我可以选择将所有内容解析为 int 或其他,或者全部解析为字符串。我需要将一些列解析为整数,一些作为小数,一些作为字符串。
否则,在我将所有内容解析为字符串后,有没有办法将活动记录中的各个元素转换和更新为新形式?说将值解析为字符串,然后将某些值转换为整数,将其他值转换为 decs 等?
只需将数据作为字符串提供给 ActiveRecord。ActiveRecord 知道你的数据库模式并且知道如何解析输入。
例如,当您设置外键的值时,您不需要将字符串转换为整数。
r = Record.create :relation_id => "3"
r.relation_id
# => 3
# note the difference between "3" and 3
对于一般用途,西蒙娜的回答更好。也就是说,如果您需要在创建活动记录对象之前对数据做一些事情(条件检查、数学等),您可以为您需要的字段提供自定义转换器。