0
我一直在想,在初始化程序中獲取記錄很常見?導軌;在初始化程序中獲取記錄
這裏這是服務對象獲取記錄和生成的PDF收據文件的示例。
輸入是發票uuid
,並獲取相關記錄,如卡明細,initialier內發票項目。
class Pdf::GenerateReceipt
include Service
attr_reader :invoice, :items, :card_detail
def initialize(invoice_uuid)
@invoice ||= find_invoice!(invoice_uuid) # caching
@items = invoice.invoice_items
@card_detail = card_detail
end
.....
def call
return ReceiptGenerator.new(
id: invoice.uuid, # required
outline: outline, # required
line_items: line_items, # required
customer_info: customer_info
)
rescue => e
false, e
end
.....
def card_detail
card_metadata = Account.find(user_detail[:id]).credit_cards.primary.last
card_detail = {}
card_detail[:number] = card_metadata.blurred_number
card_detail[:brand] = card_metadata.brand
card_detail
end
end
Pdf::GenerateReceipt.('28ed7bb1-4a3f-4180-89a3-51cb3e621491') # => then generate pdf
問題是如果記錄未找到,則會生成錯誤。 我可以在初始化程序內拯救,但是這似乎並不常見。
我該如何以更多的紅寶石方式解決這個問題?
謝謝!我同意,我已經有這本書,但還沒有讀過那麼多。我想出了爲什麼我這樣做,因爲我異步生成併發送收據,所以也許信用卡在排隊後立即改變,這可能是一個問題。 – Tosh