Obsługa błędów

Witam
Mam kłopot z obsługa błędów w rails 3.0.0. Jestem poczatkujący w temacie rails i ciezko mi rozwiazac problem. Stad moje pytanie i prosba o pomoc.
Waliduje poprawnosc tworzenia konta uzytkownika i unikalnosc :email, :user_name and :password.
W widoku “user/register” mam nastepujacy kod:

[quote]<% form_for :user do |form| %>
<%= render ‘shared/error_messages’, :target => @user %>

<% end %>[/quote]
Zawartosc _error_Messages.html.erb

[quote]<% if target and target.errors.any? %>

<%= pluralize(target.errors.count, 'error') %> prohibited this user from being saved:

There were problems with the following fields:

    <% target.errors.full_messages.each do |msg| %>
  • <%= msg %>
  • <% end %>
<% end %>[/quote] W momencie gdy tworzenie konta uzytkownika sie nie powiedzie (np :user_name juz istnieje) dostaje nastepujacy blad: [quote]wrong number of arguments (2 for 1)

Extracted source (around line #3):
1: <% if target and target.errors.any? %>
2:


3:

<%= pluralize(target.errors.count, “error”) %>
4: prohibited this user from being saved:


5:

There were problems with the following fields:


6:
    [/quote]
    Ponizej moje funkcje walidujace w “models/user.rb”

    [quote]validates_uniqueness_of :screen_name, :email, :message => “jest już zajęty.”
    validates_confirmation_of :password, :message => “i jego potwierdzenie są różne”
    validates_length_of :screen_name, :within => SCREEN_NAME_RANGE, :too_short => “jest zbyt krótki (minimum #{SCREEN_NAME_MIN_LENGTH} znaki).”, :too_long => “jest zbyt długi (maksimum to #{SCREEN_NAME_MAX_LENGTH} znaków).”
    validates_length_of :password, :within => PASSWORD_RANGE, :too_short => “jest zbyt krótkie (minimum #{PASSWORD_MIN_LENGTH} znaki).”, :too_long => “jest zbyt długie (maksimum to #{PASSWORD_MAX_LENGTH} znaków).”
    validates_length_of :email, :maximum => EMAIL_MAX_LENGTH, :message => “jest zbyt długi.”
    validates_presence_of :email, :message => “nie może być pusty.”
    #validates_presence_of :email
    validates_format_of(:screen_name, :with => /^[A-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ0-9_]*$/i, :message => "może zawierać tylko litery, " + “cyfry i znaki podkreślenia.”)
    validates_format_of(:email, :with => /^[A-Z0-9._%-]+@([A-Z0-9-]+.)+[A-Z]{2,4}$/i, :message => “musi być prawidłowym adresem e-mail.”)[/quote]
    Do tego klasa User controller

    [quote]class UserController < ApplicationController

    def index
    end

    def register
    @title = “Rejestracja”
    if request.post? and params[:user]
    @user = User.new(params[:user])
    if @user.save
    flash[:notice] = “Utworzono konto użytkownika #{@user.screen_name}!”
    redirect_to :action => “index”
    end
    end
    end
    end[/quote]
    Pomozcie prosze rozwiazac ten problem.

Wow :}

No wiec, po pierwsze użyj I18n do błędów:

w błędach wtedy wywalić możesz te message
wtedy w widoku wystarczy

<% form_for(@post) do |f| %>
<%= f.error_messages %>

nie te dziwne konstrukcje co masz
do tego w kontrolerze te @title = “Rejestracja” to tu nie powinno być jak dla mnie
w sumie zainteresuje się
screencastami
a później nifty:generators i formtastic d oformularzy

if request.post? and params[:user] - to tez jest zle, czy to post czy nie to w routach ustaw, a params sprawdzanie to model robi , nie tędy droga, ogólnie coś dużego do nauki wziełeś i jeszcze ze złych źródeł,

RAILS CASTS od 1 odcinka na blache.

[quote=gotar]w błędach wtedy wywalić możesz te message
wtedy w widoku wystarczy

<% form_for(@post) do |f| %>
<%= f.error_messages %>[/quote]
W Rails 3 wyrzucili f.error_messages http://www.suffix.be/blog/error-messages-for-rails3

To co ma porterneon prawdopodobnie było wygenerowane przez generatory rails 3.

Ja tutaj widzę, że się pluje o

[code=ruby]wrong number of arguments (2 for 1)

Extracted source (around line #3):
1: <% if target and target.errors.any? %>
2:


3:

<%= pluralize(target.errors.count, “error”) %>[/code]
Coś nie tak z helperem pluralize. Chociaż dokumentacja rails 3 mówi, ze użycie jest ok.

Ech głupio że wywalili :confused: zapomniałem o tym w sumie mam nową aplikację pod rails 3 i dalej tego używam i działa, ale pewnie wywalą wsparcie do tego ;/

Sprawdziłem, czemu nie zauważyłem, że tego już nie ma i wyszło na to że wszędzie używam formtastic do formularzy. Dzięki temu odpada problem wszelaki z formularzami

Jak powiedzial sevos, przyklad ktory podalem robilem wzorujac sie na oficjalnym tutorialu. Czy ktos wie o co chodzi z metoda “pluralize”? Czemu to sie wywala?

Poszerzajac watek: Jak stworzylem sobie kolejny projekt i uzylem scaffold do generowania “Micropost” to walidacje dlugosci znakow w polu “ZawartoscPosta” zadzialala poprawnie. Oczywiscie error wyswietlil sie w jezyku angielskim. Jak spolszczyc wyswietlane komunikaty?