0

我目前正在将 CSV 导入到 activerecord 元素中,但不能选择使用 fastcsv 逐个将元素解析为整数或小数。我可以选择将所有内容解析为 int 或其他,或者全部解析为字符串。我需要将一些列解析为整数,一些作为小数,一些作为字符串。

否则,在我将所有内容解析为字符串后,有没有办法将活动记录中的各个元素转换和更新为新形式?说将值解析为字符串,然后将某些值转换为整数,将其他值转换为 decs 等?

4

2 回答 2

0

只需将数据作为字符串提供给 ActiveRecord。ActiveRecord 知道你的数据库模式并且知道如何解析输入。

例如,当您设置外键的值时,您不需要将字符串转换为整数。

r = Record.create :relation_id => "3"
r.relation_id
# => 3
# note the difference between "3" and 3
于 2010-04-19T10:05:55.020 回答
0

对于一般用途,西蒙娜的回答更好。也就是说,如果您需要在创建活动记录对象之前对数据做一些事情(条件检查、数学等),您可以为您需要的字段提供自定义转换器。

例如,查看 http://fastercsv.rubyforge.org/svn/trunk/test/tc_data_converters.rb中的 test_convert_with_custom_code_using_field_info 方法

于 2010-04-19T16:25:07.053 回答