开发者

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]
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜