Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to access cookies from ApplicationController (Rails)

I want to access cookies and then perform the same operation regardless of the action or controller.

I don't want to write out a method that gets called from each of my myriad action methods because, aside from being a pain, it doesn't make for very agile code. I'd rather make the call to my cookie-handling method from the ApplicationController class (the superclass for all the controller classes) in application_controller.rb.

However, calling cookies() in the body of the ApplicationController class raises an 'undefined method' error. (I guess that cookies doesn't get defined until later.)

What can I do? Should I overwrite the initialize() method of the ApplicationController and call my cookie-handling method from there? If so, how should I pass the arguments to the super constructor?

P.S. I'm using Rails 2.3.5

like image 291
JellicleCat Avatar asked Nov 26 '10 00:11

JellicleCat


People also ask

How do cookies work in Rails?

Cookies, Sessions and Flashes are three special objects that Rails gives you in which each behave a lot like hashes. They are used to persist data between requests, whether until just the next request, until the browser is closed, or until a specified expiration has been reached.

What is session in Ruby?

Ruby on Rails parses cookies and serializes these files into key-value pairs (hashes) and stores them into a session. What is a session? Session is a type of cookie that is unique to the user and stores information about the user when he/she is logged in.


1 Answers

It's a hash, not a method:

cookies[:some_key]

... instead of:

cookies(:some_key)
like image 65
markquezada Avatar answered Oct 18 '22 00:10

markquezada