Now i want to get the errors of Model(like some error of validate_xxx_of ) How can i do? it seems that no error object on Controllers by API docments, Thanks. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
ModelName.errors.add(attribute, message) ModelName.errors.add_to_base(message) see: http://api.rubyonrails.org/classes/ActiveRecord/Errors.html -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Anson wrote:> Now i want to get the errors of Model(like some error of > validate_xxx_of ) > > How can i do? it seems that no error object on Controllers by API > docments, > > Thanks.object_name.errors will give all these type errors. Suppose if Student is the class name, @student = Student.new(params[:student]) @student.save In the above code, if there is any error while saving, you can get the errors in the controller like, @student.errors It will return the object of ActiveRecord::Errors class. If you want to get the errors in array, you can use like, @student.errors.full_messages Refer the ActiveRecord::Errors class in the ROR API - Karthi -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
I have 2 validations on a single object, like this in my user model:
validates_length_of :password, :within => 6..12
validates_presence_of :password
When I do a unit test to ensure a missing password is responded to
correctly, for example:
@error_messages = ActiveRecord::Errors.default_error_messages
user = User.new(:name => ''my test user'',
assert !user.valid?
assert_equal @error_messages[:blank], user.errors.on(:password)
I get a message such as:
test_create_user_passwords_missing(UserTest)
[test/unit/user_test.rb:143]:
<"can''t be blank"> expected but was
<["is too short (minimum is 6 characters)", "can''t be
blank"]>.
I have 2 questions:
1. Is there a way of ensuring this test passes, ie. by checking for both
validations at once?
2. How can I surpress or change the display of these messages in the
views? For example, if I get the "can''t be blank" and the
"is too
short..." message, I would like to display a message saying "Please
ensure you enter a password between 6 and 12 characters in length".
All help appreciated!
Thanks
Mark.
Karthi kn wrote:> Anson wrote:
>> Now i want to get the errors of Model(like some error of
>> validate_xxx_of )
>>
>> How can i do? it seems that no error object on Controllers by API
>> docments,
>>
>> Thanks.
>
> object_name.errors will give all these type errors.
>
> Suppose if Student is the class name,
> @student = Student.new(params[:student])
> @student.save
>
> In the above code, if there is any error while saving, you can get the
> errors in the controller like,
>
> @student.errors
>
> It will return the object of ActiveRecord::Errors class.
>
> If you want to get the errors in array, you can use like,
>
> @student.errors.full_messages
>
> Refer the ActiveRecord::Errors class in the ROR API
>
>
> - Karthi
--
Posted via http://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---