【发布时间】:2017-02-03 11:34:51
【问题描述】:
我在使用 rails csv 模块 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 语法是什么?
【问题讨论】:
-
什么是cdv模块?
-
为什么是二进制?什么意思?
-
你有关于
00002000的问题吗?二进制文件怎么会有2这个字符? -
(这里是因为他和我同名)
-
@sawa 错字。 .csv 模块。无论 ruby 在做什么,它都假设在第一种情况下它正在处理一个八进制数字。 [désolé à l'autre moi...]