我使用Rails 5.我有一个模型,看起来像这样如何使用多个Rails保存方法创建事务?
class CryptoIndexCurrency < ApplicationRecord
belongs_to :crypto_currency
end
我有一个服务的方法,我想填充此表的记录,这是我不喜欢这样
CryptoIndexCurrency.delete_all
currencies.each do |currency|
cindex_currency = CryptoIndexCurrency.new({:crypto_currency => currency})
cindex_currency.save
end
问题是,上述不是很事务,只要在第一条语句后发生了什么,“delete_all”将会执行,但没有其他事情会发生。什么是在这里创建交易的正确方式,同样重要,我在哪里放置该代码?想知道这里的Rails约定。
你把这个文件放进哪个文件? – Dave
无论你在做什么事情,你都说“我有一种服务方式......我喜欢这样做”。它会回滚错误,包括删除,但我确实同意你应该确保你将要创建的记录的有效性,但是你应该首先创建货币数组,以防止循环数组的两倍(一个用于验证,一个用于映射)。 –