Laiko juostos
Posted by Saulius Grigaitis 24/04/2007 at 22h10
Sveiki, tęsiam globalizacijos/lokalizacijos problemą. Šiandien prireikė korektiško laiko nustatymo mechanizmo skirtingose laiko juostose esantiems vartotojams. Deja, standartinės Rails priemonės nesusitvarko su lygiadieniais, t.y. apie pusmetį kasmet turėsite neteisingą laiką :). Klientų tai visai nenudžiugintų, tad teko rasti sprendimą. Bene vienintelis patogus būdas tinkantis 1.2 versijos Rails karkasui yra tzinfo_timezone įskiepis, kuriam taip pat reikia tzinfo gem'o. Nurodom Rails'ų Active Record'ui naudoti UTC laiką, nustatydami config.active_record.default_timezone = :utc config/environment.rb faile. Pridedame vartotojų lentelėje stulpelį "time_zone". Na ir belieka pasirašyti helperius laiko konvertavimui iš UTC į vartotojo lokalų laiką ir atvirkščiai, metodo "utc_to_local" pagalba. Iki!
