我正在尝试使用ActiveRecord在数据库中插入数据。

当我使用pdays = MyModel.new而不是下面的find_or_initialize_by进行初始化时,脚本可以正常运行。但是它只能运行一次。我需要每天运行以执行更新。当我第二次尝试使用pdays = MyModel.new运行脚本时,则不会出现重复的键约束。

因此,我正在尝试下面的带有2个参数的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

最佳答案

您可以尝试:

MyModel.find_or_initialize_by_local_dt_and_comunity_id([:local_dt], vdays[:community_id])

_and_附加列名

10-06 00:18