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_co开发者_开发问答ntroller.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
It's a hash, not a method:
cookies[:some_key]
... instead of:
cookies(:some_key)
This might work for you:
class ApplicationController
before_filter :handle_cookies
def handle_cookies
# Do whatever it is you want to do with your cookies
end
end
The before_filter
method will call whatever subroutine you indicate (:handle_cookies
) after cookies
has been compiled into a hash. Adding this code to your application controller will mean that all the other controllers inherit it and will perform the same function.
I am using rails 5 and below code worked for me.
cookies[:key_name]
精彩评论