【发布时间】:2012-05-02 08:06:03
【问题描述】:
我正在我的 rails 3 应用程序中运行一个库,该库在不同模型上执行多个插入和更新。这就像导入一个 CSV 购物清单文件,其中可能包含中止导入功能的错误。
所以我有这样的东西:
begin
ActiveRecord::Base.transaction do
@csv.each_with_index do |row, line_number|
begin
shopping_list_importer.import(row)
rescue Exception => e
invalid_objects << {:message => e.message, :line_number => line_number+2}
end
end
raise ActiveRecord::StatementInvalid if invalid_objects.present?
end
rescue ActiveRecord::StatementInvalid
end
我的问题是,当创建一个新的购物清单项目时,它会为用户发送一封电子邮件。 当发生一些错误时,电子邮件已经发送并且交易不会阻止它。没关系,我明白为什么会这样,我应该在导入后发送电子邮件,但我的问题是有没有更简单的方法可以做到这一点并继续使用交易块?
提前致谢, 安德烈。
【问题讨论】:
标签: ruby-on-rails-3 email transactions