diff options
author | Oscar Del Ben <info@oscardelben.com> | 2012-04-21 12:17:51 +0200 |
---|---|---|
committer | Oscar Del Ben <info@oscardelben.com> | 2012-04-21 12:17:51 +0200 |
commit | 3da2b530aff28d4ea0272e36578188bb6869cbcc (patch) | |
tree | 61923eb8c4d725c38e314e706740362a66c01021 /guides/source/getting_started.textile | |
parent | 504ba12e8cd256b08a43f8ee56c6e2b0272ce6cc (diff) | |
download | rails-3da2b530aff28d4ea0272e36578188bb6869cbcc.tar.gz rails-3da2b530aff28d4ea0272e36578188bb6869cbcc.tar.bz2 rails-3da2b530aff28d4ea0272e36578188bb6869cbcc.zip |
Add validation code to getting started guide and improve validation
section
Diffstat (limited to 'guides/source/getting_started.textile')
-rw-r--r-- | guides/source/getting_started.textile | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/guides/source/getting_started.textile b/guides/source/getting_started.textile index 4a460ab2fd..f184004f80 100644 --- a/guides/source/getting_started.textile +++ b/guides/source/getting_started.textile @@ -695,9 +695,8 @@ in "Active Record Validations and Callbacks":active_record_validations_callbacks.html#validations-overview If you open +posts_controller+ again, you'll notice that we don't check -the result of calling +@post.save+, but now if we don't pass a valid -title, +save+ will return false and we need to show the form back to the -user. To do that, modify the +create+ action to look like the following: +the result of calling +@post.save+. We need to change its behavior to +show the form back to the user if any error occur: <ruby> def new @@ -716,12 +715,12 @@ end </ruby> Notice that I've also added +@post = Post.new+ to the +new+ action. I'll -explain why I did that in the next section. +explain why I did that in the next section, for now add that to your +controller as well. -Now, if validations fail and +save+ returns false, we show the form back -to the user. Note that we use +render+ instead of +redirect_to+. We do -that because +render+ will pass the +@post+ variable back to the form, -which contains the error information that we need. +Also notice that we use +render+ instead of +redirect_to+ when +save+ +returns false. We can use +render+ so that the +@post+ object is passed +back to the view. If you reload "http://localhost:3000/posts/new":http://localhost:3000/posts/new and @@ -762,8 +761,10 @@ something went wrong. To do that, you'll modify </erb> A few things are going on. We check if there are any errors with -+@post.errors.any?+, and if that returns true we show the list of all -errors with +@post.errors.full_messages+. +pluralize+ is a rails helper ++@post.errors.any?+, and in that case we show a list of all +errors with +@post.errors.full_messages+. + ++pluralize+ is a rails helper that takes a number and a string as its arguments. If the number is greater than one, the string will be automatically pluralized. @@ -775,7 +776,9 @@ TIP: Rails automatically wraps fields that contain an error with a div with class +field_with_errors+. You can define a css rule to make them standout. +Now you'll get a nice error message when saving a post without title: +!images/getting_started/form_with_errors.png(Form With Errors)! h4. Using the Console |