pipedrive-ruby
とSequelの宝石を使用してJSONハッシュのデータを取得してデータベースに格納しようとしていますが、常にすべてのセルと角括弧文字列の始めと終わり。これをどうすれば解決できますか?括弧と引用符で囲まれた変数を返すマップ関数
コード:
query_values = activities.map do |activity|
"#{activity['id']}"
end
query = "INSERT INTO pd_activities (id) VALUES (#{query_values})"
insert_ds = DB[query]
insert_ds.insert
データベースに挿入しようとすると、これは誤りです:
/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sequel-4.34.0/lib/sequel/adapters/postgres.rb:186:in `async_exec': PG::SyntaxError: ERROR: syntax error at or near "[" (Sequel::DatabaseError)
LINE 1: INSERT INTO pd_activities (id) VALUES (["72943", "73532", "7...
Michael Gaskillはすでに解決策を証明しました。 **なぜ**あなたのアプローチが失敗したか:文字列補間( '"#{....} "')を使うと、to_sメソッドは静的に補間括弧をinsdeに適用され、 'Array #to_s'は不要な括弧を生成します。 – user1934428
強調するには、補間を使用して値を追加しないでください。データを追加するには、Sequelの[組み込みおよび慣用方法](http://sequel.jeremyevans.net/rdoc/files/README_rdoc.html#label-Inserting+Records)を使用します。続編は正しいことを行い、あなたはもっと幸せになるでしょう。 SequelのようなORMは、今日はかなり強力な生き物であり、それらを学ぶために支払う。シンプルなドライバーのように扱わないでください。 –