2009-09-03 8 views
1

나는 놀고있는 새로운 보석을 가지고있다. 그러나 그것을 초기화 할 수 있도록 어디에 두어야할지 모르겠다. 그러나 그것을 사용할 때마다 매번 그것을 할 필요가 없다. .어떻게 돈을 보석을 초기화합니까?

def self.get_rate(from, to, amount) 
    Money.default_bank.fetch_rates #<---------------- Here it is... 

    if to == "USD" or from == "USD" 
     rate = Money.default_bank.get_rate(from, to) * amount 
    else 
     rate_to_us = Money.default_bank.get_rate(from, "USD") * amount 
     rate = Money.default_bank.get_rate("USD", to) * rate_to_us 
     #rate = Money.default_bank.get_rate(params[:currency][:from], "USD") 
    end 
    rate = Money.new(rate.to_money,to).format(:with_currency) 
    end 

내가 한 번, 그렇지 않으면 작동하지 않습니다 초기화해야하지만, 지금처럼 내가 할 경우, xml 파일과 다른 무엇을로드합니다. 하루에 한 번만로드되도록하려면 어떻게해야합니까?

답변

2

Money gem은 이미 환율을 너무 오랫동안 가져 오는 것을 지원합니다. require.rb 파일 (RAILS_ROOT/config/initializers)에 자동 반입을 설정하는 코드를 넣을 수 있습니다. 머니 워드 프로세서에서

Money.default_bank.auto_fetch 86400 

:

Money.default_bank.fetch_rates   # Fetch the rates 
    Money.default_bank.auto_fetch 3600  # Fetch the rates every hour 
    Money.default_bank.stop_fetch   # Stop auto-fetch 
0

해당 논리를 application.rb에 날짜 및 시간 확인과 함께 넣으십시오. 하루가 변경되면 초기화를 다시 시작하여 환율을 업데이트하십시오.

관련 문제