rake任务替换而不是创建新的

时间:2016-02-28 12:02:06

标签: ruby-on-rails rails-activerecord

我有这个rake任务

Event.find_or_create_by(
  time: row[9],
  date: row[10],
  event_type: word1,
  eventimage: row[4],
  eventname: eventname,
  eventvenuename: location,
  event: eventname,
  eventlink1: eventlink1,
  eventlink2: eventlink2
)

现在eventlink1可能会在第一次eventlink2 null eventlink2时输入login。如果我再次运行它并且submit现在要填充数据,它会创建一个新行,而不是更新现有行。

如何更新现有行而不是创建新行?

1 个答案:

答案 0 :(得分:0)

document.getElementsByTagName("u_firstname"); 如果找不到与您提供的字段匹配的新行,则会创建一个新行,当您提供find_or_create_by值时,会将其转换为SQL {{1}所以第二次它找不到完全匹配。

您应该将该命令分解为单独的nil查询和WHERE eventlink2 IS NULL命令。

如果要匹配数据库中具有find_by值的字段,可以在查询中包含create

NULL