我使用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
無論你在做什麼事情,你都說「我有一種服務方式......我喜歡這樣做」。它會回滾錯誤,包括刪除,但我確實同意你應該確保你將要創建的記錄的有效性,但是你應該首先創建貨幣數組,以防止循環數組的兩倍(一個用於驗證,一個用於映射)。 –