Zmiana nazwy kolumny podczas walidacyji formularza

Mam taki problem. Próbuję napisać formularz który bedzie walidowany. Sciągnąłem już plugin localization-symplyfied i zrobiłem polskie komunikaty o np. tym że dane pole jest puste. Mam jeszcze problem w znianie nazwy kolumny. Np. w bazie mam tabelę “users” a w niej kolumnę “name”. Jeśli teraz pozostawie pole w formularzu puste to wyświetli mi się: “Name - to pole jest puste.”, a chciałbym żeby wyświetlało się “Nazwa użytkownika - to pole jest puste.”. Myślałem aby zmienić fizycznie nazwę kolumny w bazie danych, ale wolałbym unikać takich rzeczy. Czy w imlementacji AR jest taka opcja zmiany wyświetlanej nazwy dla formularza?? Pomóżcie

W samym AR zdaje się nie ma (albo kiepsko szukałem). Ja po prostu podmieniłem funkcje, które wyświetlają te komunikaty, tak, aby dało się dodać swoją własną nazwę pola, jako dodatkowy arhument w hashu.

Drogus, jakbyś mógł wrzuć jakąś cześc kodu o której piszesz bo nie zabardzo rozumiem to co zaproponowałeś. Dobiero zaczynam zabawe z Rails i szybko kapujący nie jestem:]. Będe wdzięczny.

Zamiana wrzucania nazwy pola:

[code]ActiveRecord::Errors.class_eval do
def full_messages
full_messages = []

   @errors.each_key do |attr|
     @errors[attr].each do |msg|
       next if msg.nil?

       if attr == "base"
         full_messages << msg
       else
         full_messages << "Pole " + human_attribute_name_pl(attr) + " " + msg
       end
     end
   end

   return full_messages
 end

end[/code]
I metoda, która zwróci Polską nazwę dla danego atrybutu

def human_attribute_name_pl(attr) case attr when 'title' 'tytuł' when 'link_adress' 'adres' else attr end end
no i trzeba podmienić teksty dla poszczególnych walidacji, na przykład:

ActiveRecord::Errors.default_error_messages[:blank] = "nie może być puste."

Można by to napisać lepiej, szczególnie jeżeli mamy wiele pól do walidacji - najlepiej byłoby dodać nowy argument do metod: validates_*_of, w kórym moglibyśmy określić polską nazwę danego pola. W tym jednak wypadku stwierdziłem, że dla 2 pól, które tak naprawdę muszę zwalidować (bardzo mała aplikacja) nie opłaca się męczyć.

Pozdrawiam

Jeśli dobrze rozumiem potrzebujesz pluginu Custom Error Message

Tu znajdziesz opis gdzie go dostać i jak zamontować.
http://wiki.rubyonrails.org/rails/pages/Custom+Error+Message

w skrócie

np.
validates_acceptance_of :accepted_terms, :message => ‘^Twoja wiadomość’

po wrzuceniu pluginu w vendor/plugins, dodając do :message na początku “^” ominiesz nazwe kolumny w tabeli.

Natychmaistowa odpowiedz. To mi się podoba. Dzieki wielkie wszyskim. Pozdrawiam.