私はexcelファイルを読むためにparseexcel gemを使用しています。 コンソールにものを印刷している限り、すべてのことがうまくいきます。 私はdbにデータを挿入するrakeタスクを作成しました。 私はたくさんのcreate文を持っています。このようにRuby/Railsは文字列エラーとしてキャスト
description = row[i+1].to_s
Coa.create(:is_group => true, :ag_gl_code => "AGL_001", :description => "#{description}")
私の問題は 'description'変数にあります。その文字列フィールド。私はこのようなコンソールに説明を印刷する場合、それは動作し、値に
puts "{#description}" #prints the value 'Estate'
を出力しますが、作成するには、それは私に、SQLエラー
SQLite3::SQLException: unrecognized token: "'E":
を与えるが、クエリが細かい生成されます。文字列は一重引用符で照会され、変数をハードコードされた文字列で置き換えるとうまくいきます。私はto_sなどを使用するような多くの組み合わせを試してきましたが、動作させることはできません。
助けていただければ幸いです。おかげ
は、ここで私はそれが価値、および追加なし引用符を印刷していることに注意し、「説明」の値を記録している、ここで私のスキーマ
create_table "coas", :force => true do |t|
t.string "ag_gl_code"
t.string "description"
t.boolean "is_group"
t.datetime "created_at"
t.datetime "updated_at"
end
で、端末ログです。
Estate
rake aborted!
SQLite3::SQLException: unrecognized token: "'E": INSERT INTO "coas" ("created_at", "is_group" , "description", "ag_gl_code", "updated_at") VALUES ('2011-07-14 14:48:56.616150', 't', 'Estate', 'AGL_001', '2011-07-14 14:48:56.616150')
なぜ ':description =>"#{description} "'のような文字列を補間していますか? ':description => description'だけで十分です。そして、あなたのエラーメッセージは、誰かが物事を適切に引用していないことを示しています。 –
'puts" {#description} "' typo? – Dogbert
私は試しました:description => description、同じエラーを出しましたが、私は:description => 'estate'を置くとうまくいきます。 (putsは私がここで作ったタイプでした) –