使用数字的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语法是什么?
答案 0 :(得分:0)
首先传递给整数,然后传递给字符串以匹配搜索数据类型
@client = Client.where('original_identifier = ?', row[1].to_i.to_s).first
是一个解决方案。