Uff, mój pierwszy post tutaj!
Mam problem z ustawieniem routes, które aktualnei wyglądają tak:
Rails.application.routes.draw do
localized do # localized is available via routes_translator gem
root to: 'home#index'
get 'settings', to: 'home#settings'
end
get '', to: redirect("/#{I18n.default_locale}/")
get '*path', to: redirect("/#{I18n.default_locale}/%{path}")
end
I18n ma ustawione default_locale
na :pl
, a ja chciałbym móc przekierować użytkownika bazując na jego lokalizacji (określanej po IP, za pomocą gemu geocoder
). Napisałem małe rozszerzenie do I18n:
module I18n
def self.dynamic_locale
if request.location.country_code != "PL"
return :en
else
return I18n.default_locale
end
end
end
Podczas próby użycia i zastąpienia default_locale
przez dynamic_locale
w routes.rb
i próbie odpalenia serwera, dostaję error:
'dynamic_locale': undefined local variable or method 'request' for I18n:Module (NameError)
Spotkał się ktoś z podobnym problemem?
Czy zaproponowane przeze mnie rozwiązanie ma sens, i jeśli tak to jak sprawić, by działało?