diff options
Diffstat (limited to 'railties/doc/guides/source/actioncontroller_basics/cookies.txt')
-rw-r--r-- | railties/doc/guides/source/actioncontroller_basics/cookies.txt | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/railties/doc/guides/source/actioncontroller_basics/cookies.txt b/railties/doc/guides/source/actioncontroller_basics/cookies.txt new file mode 100644 index 0000000000..d451f3f7a6 --- /dev/null +++ b/railties/doc/guides/source/actioncontroller_basics/cookies.txt @@ -0,0 +1,34 @@ +== Cookies == + +Your application can store small amounts of data on the client - called cookies - that will be persisted across requests and even sessions. Rails provides easy access to cookies via the `cookies` method, which - much like the `session` - works like a hash: + +[source, ruby] +----------------------------------------- +class CommentsController < ApplicationController + + def new + #Auto-fill the commenter's name if it has been stored in a cookie + @comment = Comment.new(:name => cookies[:commenter_name]) + end + + def create + @comment = Comment.new(params[:comment]) + if @comment.save + flash[:notice] = "Thanks for your comment!" + if params[:remember_name] + # Remember the commenter's name + cookies[:commenter_name] = @comment.name + else + # Don't remember, and delete the name if it has been remembered before + cookies.delete(:commenter_name) + end + redirect_to @comment.article + else + render :action => "new" + end + end + +end +----------------------------------------- + +Note that while for session values, you set the key to `nil`, to delete a cookie value, you use `cookies.delete(:key)`. |