ActiveRecordを使用してデータベースにデータを挿入しようとしています。
pdays = MyModel.new
以下ではなく初期化に使用するfind_or_initialize_by
と、スクリプトは正常に実行されます。ただし、実行されるのは1回だけです。更新を実行するためにこれを毎日実行する必要があります。を使用してスクリプトを2回実行しようとするとpdays = MyModel.new
、重複するキー制約は発生しません。
したがって、2つの引数を使用して以下のfind_or_initialize_byを試していますが、エラーが発生します。
未定義のメソッド`find_or_initialize_by '
2つの列が一緒になって一意のレコードを作成します。
vertica_traffic.each do |vdays|
pdays = MyModel.find_or_initialize_by([:local_dt], vdays[:community_id])
pdays[:local_date] = vdays_traffic[:local_d]
pdays[:community_id] = vdays_traffic[:community_id]
pdays[:uniquesters] = vdays_traffic[:uniques]
pdays.save
end