【问题标题】:fastercsv parsing to int or other into ActiveRecordfastcsv 解析为 int 或其他转换为 ActiveRecord
【发布时间】:2010-04-19 07:18:18
【问题描述】:

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

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

【问题讨论】:

    标签: ruby-on-rails ruby parsing csv fastercsv


    【解决方案1】:

    只需将数据作为字符串提供给 ActiveRecord。 ActiveRecord 知道您的数据库架构并知道如何解析输入。

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

    r = Record.create :relation_id => "3"
    r.relation_id
    # => 3
    # note the difference between "3" and 3
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2011-07-11
        • 2019-11-29
        • 1970-01-01
        • 1970-01-01
        • 2012-07-13
        • 2012-10-20
        • 2015-07-29
        • 1970-01-01
        • 2011-03-29
        相关资源
        最近更新 更多