ROLLBACK Rails和ActiveRecord

时间:2014-06-04 20:52:06

标签: mysql activerecord ruby-on-rails-4.1

我有以下代码:

def store_or_update_agent(agent)
  existing_agent = Agent.find_by_slug(agent['slug'])
  if !existing_agent
logger.info('No record found, creating one')
    logger.info(agent)
    new_agent = Agent.new(agent)
    new_agent.save
  else
logger.info('Existing agent')
    existing_agent.update(agent)
  end
end

这用于处理我使用RubyXL导入的电子表格中的行。 RubyXL正在完成它的工作,记录器信息告诉我行正确导入。但问题是只有一行被保存到数据库中。它不是第一个,也不是最后一个,而是接近结束的地方。

在我的日志中查找保存之前的记录以及保存的记录时,我看到类似这样的内容:

这是针对未保存的记录:

No record found, creating one
{"first"=>"John", "last"=>"Doe", .....}
  [1m[36m (0.0ms)[0m  [1mBEGIN[0m
  [1m[35m (0.0ms)[0m  ROLLBACK

这是为了保存的记录:

No record found, creating one
{"first"=>"John", "last"=>"Doe", .....}  
[1m[35m (0.0ms)[0m  BEGIN
[1m[36mSQL (41.1ms)[0m  [1mINSERT INTO `agents` (`first`, `last`) VALUES ('John','Doe')[0m
[1m[35m (21.0ms)[0m  COMMIT

这里有什么想法,以及ROLLBACK的用途是什么?

0 个答案:

没有答案