Korzystając ze wskazówki zawartej tutaj: http://wiki.rubyonrails.org/rails/pages/HowToUseValidationsWithoutExtendingActiveRecord
Stworzyłem sobie obiekt do walidacji danych:
[code=ruby]class SystemAccountValidator < ValidatingBase
attr_accessor :login
attr_accessor :mail
attr_accessor :old_password
attr_accessor :new_password
attr_accessor :new_password_confirmation
validates_presence_of :login, :message => “Musisz podać login”
validates_presence_of :mail, :message => “Musisz podać e-mail podany podczas rejestracji”
validates_confirmation_of :new_password, :message => “Potwierdzenie hasła musi być identyczne z nowy”
def initialize(params)
@login = params[:login]
@mail = params[:mail]
@old_password = params[:old_password]
@new_password = params[:new_password]
@new_password_confirmation = params[:new_password_confirmation]
# Fill fields on default values to success validate with each form
if @old_password != ""
@mail = "admin@admin.pl"
else
@new_password = "1234abcd1234"
@new_password_confirmation = "1234abcd1234"
end
end
end[/code]
Wiem, żę w zewnętrznym kontrolerze mogę dostać się do błędów tak:
system_account_validator.errors.each_full {
|msg|
text += msg
}
render :text => text
Jednak znalazłem w dokumentacji error_messages_for. Jednak
= error_messages_for ‘system_account_validator’
Nie działa. Co zrobić, żeby automatycznie dostać error-y w widoku ?