From 0d5a7ad84ddbcb4de7c327e39a7747e00b0cd89f Mon Sep 17 00:00:00 2001
From: Oscar Del Ben <info@oscardelben.com>
Date: Fri, 20 Apr 2012 09:59:30 +0200
Subject: Add "Saving data in the controller" section

---
 guides/source/getting_started.textile | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

(limited to 'guides/source/getting_started.textile')

diff --git a/guides/source/getting_started.textile b/guides/source/getting_started.textile
index 3715601a5a..6de9cc39bc 100644
--- a/guides/source/getting_started.textile
+++ b/guides/source/getting_started.textile
@@ -463,6 +463,33 @@ command will apply to the database defined in the +development+ section of your
 environment, for instance in production, you must explicitly pass it when
 invoking the command: <tt>rake db:migrate RAILS_ENV=production</tt>.
 
+h4. Saving data in the controller
+
+Back into +posts_controller+, we need to change the +create+ action
+to use the new +Post+ model to save data in the database. Open that file
+and change the +create+ action to look like the following:
+
+<ruby>
+def create
+  @post = Post.new(params[:post])
+
+  @post.save
+  redirect_to :action => :index
+end
+</ruby>
+
+Here's what's going on: every Rails model can be initialized with its
+respective attributes, which are automatically mapped to its
+database columns. In the first line we do just that (remember that
++params[:post]+ contains the attributes we're interested in). Then,
++@post.save+ is responsible for saving the model in the database.
+Finally, on the last line we redirect the user to the +index+ action,
+wich we have not defined yet.
+
+TIP: As we'll see later, +@post.save+ returns a boolean indicating
+wherever the model was saved or not, and you can (and usually do) take
+different actions depending on the result of calling +@post.save+.
+
 h4. Adding a Link
 
 To hook the posts up to the home page you've already created, you can add a link
-- 
cgit v1.2.3

