比较数字字符串与零填充

时间:2017-02-03 11:34:52

标签: ruby csv

使用数字的rails csv module require 'csv'导入字符串时出现问题,并用零填充数字。

以下两个查询会给出不同的结果。第一种是考虑二进制模式的输入,
第二个是影响正确的查询。

Client.where('original_identifier = ?', 00002000.to_s).first
 SELECT  "clients".* FROM "clients" WHERE (original_identifier = '1024')

Client.where('original_identifier = ?', "00002000").first
 SELECT  "clients".* FROM "clients" WHERE (original_identifier = '00002000')

Client.where('original_identifier = ?', "00001999").first

返回irb错误Invalid octal digit

但是,对于CSV模块

@client = Client.where('original_identifier = ?', row[1].to_s).first
当我预期行为与第二种情况一样时,

只生成空结果。

那么正确的ruby语法是什么?

1 个答案:

答案 0 :(得分:0)

首先传递给整数,然后传递给字符串以匹配搜索数据类型

@client = Client.where('original_identifier = ?', row[1].to_i.to_s).first

是一个解决方案。