我的应用程序中存在使用电子邮件模板中的帮助程序的问题。在我的应用程序中,我实现了" money-rails"处理其他货币的付款。我有以下帮助:
module CurrencyHelper
# overriding std rails helper to use 'money' gem methods
def number_to_currency(money, options = {})
return '-' unless money
currency = options.fetch(:currency, current_currency)
date = options.fetch(:date, nil)
should_reload = if date && !money.currency.eql?(currency)
ExchangeRatesManager.new(date: date).call
end
money_in_currency = money.exchange_to(currency)
ExchangeRatesManager.new.call if should_reload # should rollback to current exchange rates
humanized_money_with_symbol(money_in_currency)
end
end
现在我在我的电子邮件邮件模板中使用它。当我不通过delayed_job发送邮件时,一切正常:
UserMailer.reservation_confirmation_link(@reservation).deliver
但是当我通过delayed_job发送电子邮件时:
RentalOfficeMailer.delay.reservation_summary(@reservation)
它没有加载这个被覆盖的number_to_currency方法,它没有显示我正确的货币。
提前感谢您的帮助。
答案 0 :(得分:1)
我有同样的问题,帮助器没有在后台加载,我通过这种方式调用helper方法解决了这个问题,在你的情况下你可以这样做:
Class.new.extend(CurrencyHelper).number_to_currency(money, {})