gpt4 book ai didi

ruby-on-rails - 使用 money gem 进行 rails 缓存(eu_central_bank)

转载 作者:太空宇宙 更新时间:2023-11-03 17:41:04 24 4
gpt4 key购买 nike

我找到了 Money gem 的这个附加组件,它从 ECB 欧洲中央银行更新(每 24 小时更新一次利率),但我不确定我应该如何在使用多种货币的 Rails 应用程序中进行缓存。

http://github.com/RubyMoney/eu_central_bank

eu_bank ||= EuCentralBank.new
eu_bank.update_rates
#Rails.cache.fetch('rates', :expires_in => 24.hours) { eu_bank.update_rates }
rate = eu_bank.exchange_with(Money.new(100, session[:currency]), "USD").to_f

它具有将费率写入某个文件的功能...但我也不确定这是否是我想要的。我也在使用具有只读文件系统的 heroku。

eu_bank.save_rates("/some/file/location/exchange_rates.xml")

我也找不到任何方法来检查对象的年龄。我只是想知道最好的选择是每 24 小时加载一次并在我的整个 Rails 应用程序中保持不变。有什么指点吗?

最佳答案

这可以通过使用 Rails 低级缓存和 before_filter 来完成:

class ApplicationController < ActionController::Base

before_filter :set_conversion_rates

def set_conversion_rates

rates = Rails.cache.fetch "money:eu_central_bank_rates", expires_in: 24.hours do

Money.default_bank.save_rates_to_s
end

Money.default_bank.update_rates_from_s rates

end
end

此代码将每 24 小时下载一次汇率并将结果保存到缓存(无论您使用什么缓存模块),银行对象会在每次请求时从那里加载它们。

关于ruby-on-rails - 使用 money gem 进行 rails 缓存(eu_central_bank),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3805775/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com