2017-02-03 10 views
-1

文字列をインポートする際に問題が発生しました。レールのCSVモジュールrequire 'csv'の桁数に0が埋め込まれています。数字の文字列を0の詰め物と比較する

次の2つのクエリは異なる結果を示します。最初はバイナリモードでの入力を考慮していますが、
が適切なクエリを実行しています。

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 

は、CSVモジュール

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

Iの挙動が第二の場合と同様であることが期待だけヌル結果を生成しているため、ただしIRBエラーをInvalid octal digit

を返します。

正しいルビー構文は何ですか?検索データタイプ

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

を一致させるため、文字列を整数第1渡す

+0

cdvモジュールとは何ですか? – sawa

+1

なぜバイナリですか?どういう意味ですか? – sawa

+1

'00002000'について何か問題はありますか?バイナリはどのように文字 '2'を持つことができますか? – sawa

答えて