w jednej ze swoich aplikacji używam gem’u audited-activerecord do śledzenia zmian modelu.
Niestety mimo poprawnego pliku config/locales/pl.yml gdzie są przetłumaczone atrybuty wszystkich modeli przy wywołaniu kodu:
audit = Client.first.audits.last
audit.audited_changes # => {"name"=>["Michał", "Paweł"]}
metoda zwraca mi tablicę, w której atrybuty modelu są niestety po angielsku, czego mój Klient sobie nie życzy.
Pytanie czy będę musiał ręcznie tłumaczyć całą tablicę atrybutów, czy może mam po prostu coś źle skonfigurowane? Na co zwrócić uwagę?
Jeśli ktoś by kiedyś potrzebował, tak własnie przed chwilą zrobiłem w swojej aplikacji
class AuditDecorator <SimpleDelegator
def username
User.find(user_id).full_name # lub inna metoda pobierająca nazwę użytkownika
end
def t_audited_changes
audited_changes.inject({}) do |l, (k,v) |
l[auditable_type.constantize.human_attribute_name(k)] = v; l
end
end
def t_auditable_type
auditable_type.constantize.model_name.human
end
def txt
t_audited_changes.map do |k, v|
"#{username}: zmiana w [#{t_auditable_type} - #{ auditable_id}) - #{k}] z [#{v[0]}] na [#{v[1]}]"
end
end
end
[“Administrator: zmiana w [Pracownik(22) - Data zatrudnienia] z [09-14-2015] na [09-18-2015]”,
“Administrator: zmiana w [Pracownik(22) - Numer telefonu komórkowego] z [123456780] na [123456733]”]