W przypadku używania walidatorów dla stron polskojęzycznych pojawia się problem z niezręcznymi angielskimi komunikatami błędów. Aby spolonizować w prosty sposób nasze komunikaty wystarczy dokonać tylko kilku modyfikacji.
Załóżmy, że w naszym modelu mamy następującą klasę:
class Produkt < ActiveRecord::Base
#pola => Nazwa, Cena,
end
Spolonizowana walidacja mogłaby wyglądać w takim przypadku następująco:
class Produkt validates_presence_of :nazwa, :message => "nie może być pusta"
validates_presence_of :cena, :message => "nie może być pusta"
validates_length_of :nazwa, :minimum=>2, :message=> "musi składać się przynajmniej z dwóch znaków"
validates_numericality_of :cena, :greater_than_or_equal_to => 0, :message => "nie może być ujemna"
end
W tym momencie część pracy już za nami. Metoda
<%= error_message_for :produkt -%>
działa już prawie tak jak byśmy chcieli. Pozostaje usunięcie nagłówka i wstępnego komunikatu, który w dalszym ciągu pojawia się w języku angielskim. Rozwiązanie jest dość trywialne (oczywiście jeżeli wiadomo gdzie szukać). Poprawiona wersja metody wygląda więc tak:
<%= error_messages_for :produkt, :header_message => "Błąd !", :message => "Lista błędów:"%>
Polecam również lekturę:
http://www.rubyonrails.pl/forum/p3572-2007-10-22-00:50:44
Thursday, March 20, 2008
Ruby on Rails - polskie komunikaty błędów przy walidacji
Etykiety:
ruby on rails
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment