0

データベースにサードパーティ API からのデータを入力する rake タスクを作成しました。

namespace :populate do
desc "Populate database with data from first page of TicketWeb API"
task :one_page => :environment do
    require 'open-uri'
    json_data = open(SOME_URL).read
    parsed_json = JSON.parse(json_data)
    parsed_json["events"].each do |e|
        existing_event = Event.find_by_id(e["eventid"])
        if existing_event == nil
            new_event = Event.new(e)
            new_event.save
        else
            existing_event.update_attributes(e)
        end
    end
end

終わり

これは、私のマシンでローカルに実行しているときに完全に機能します。ただし、Heroku インスタンスで実行すると、次のエラーが発生します。

レーキが中止されました! 接続が拒否されました - connect(2)

私は Rails の経験があまりないので、サードパーティの API から正しい方法でデータを取得しているのか、それとも Heroku が私がやっていることを気に入らないだけなのかわかりません。現時点では、私はただ困惑しています。

4

1 に答える 1

0

サードパーティ API が Heroku からのリクエストをブロックしていたことが判明しました。

次のコマンドを使用して、ローカル データベースを Heroku のデータベースにプッシュすることで、これを回避しました。

heroku db:push
于 2012-06-11T04:18:49.887 に答える