Polonizacja atrybutow

Witam.
W klasie User mam taki oto fragment kodu.

[code]#Przetlumaczone nazwy pol
HUMANIZED_ATTRIBUTES = {
:email => “Adres e-mail”,
:screen_name => “Pseudonim”,
:password => “Hasło”,
:current_password => “Bieżące hasło”
}

#Tlumaczy nazwy pol
def self.human_attribute_name(attr)
HUMANIZED_ATTRIBUTES[attr.to_sym] || super
end[/code]
Aplikacja wyrzuca blad na metodzie def self.human_attribute_name(attr) mowiac ze jest zla ilosc parametrow. Jak w kodzie klasy spolonizowac atrybuty?

PS: Mam zainstalowane rails 3.0.0. W wersji 2.3.8 ta metoda dzialala. Co sie zmienilo?

omg… poczytaj o rails i18n i porzuc te dziwne protezy.

Poczytać możesz tutaj:
http://guides.rubyonrails.org/i18n.html

Wyrzuca błąd pewnie dlatego, że nie podajesz attr jako argumentu dla super, co nie zmienia faktu, że faktycznie jest to dziwne rozwiązanie, biorąc pod uwagę, że i18n robi to samo i można zaoszczędzić na pisaniu :wink:

super bez nawiasów wywołuje metodę z `nadklasy’ z takimi samymi parametrami jak na wejściu.
Jak chce się zmienić listę parametrów dla metody z nadklasy to się wtedy używa nawiasów i podaje argumenty.

Skoro wyrzuca błąd, że podajesz złe parametry to logiczne, że podajesz złą liczbe parametrów.
Wystarczy sobie zajrzeć w kod i zobaczyć jak jest zdefiniowana metoda w nadklasie.

def human_attribute_name(attribute, options = {}) ... end
Co nie zmienia faktu, że wszyscy poprzednicy mają rację i OMG jest na miejscu.

Dzieki za dobra podpowiedz.
Podejscie ktore zaprezentowalem wziolem z ksiazki RailsSpace. Jak to zwykl mawiac jeden z moich nauczycieli w szkole: “W ksiazkach to glupoty pisza.” :slight_smile:

[quote=porterneon]Dzieki za dobra podpowiedz.
Podejscie ktore zaprezentowalem wziolem z ksiazki RailsSpace. Jak to zwykl mawiac jeden z moich nauczycieli w szkole: “W ksiazkach to glupoty pisza.” :)[/quote]
Z tego co widzę na stronie, to książka była zrobiona jeszcze dla Railsów 1.x, wtedy nie było jeszcze i18n out of the box, więc na różne sposoby sobie ludzie radzili. Dlatego raczej staraj się weryfikować czy materiały, których używasz są aktualne, to nie wina autorów książki, że używasz jej kilka lat po napisaniu w tak dynamicznym środowisku jakim są railsy :slight_smile:

Drugie wydanie dotyczylo rails 2.3.5

To w takim wypadku wyrzuć książkę w cholerę :wink: Na szybko w googlu wyglądało na to, że książka wyszła tylko dla 1.x