从帮助者访问cookie

时间:2012-03-21 00:29:09

标签: ruby-on-rails ruby

我希望能够在控制器中说store[...]而不是cookies[...](不要问为什么 - 我也不想要调用'永久')。为此,我在帮助器中创建了以下内容:

module ApplicationHelper

      $cookies = 0

      class Store

        def self.[] (k)
          $cookies[k]
        end

        def self.[]= (k,v)
          $cookies.permanent[k] = v
        end  

      end    

      def store
        $cookies = cookies
        Store
      end  

它有效,但不用说我对它不满意。如何改进/缩短。如何将所有对“cookies”的引用放在Store类本身中。

1 个答案:

答案 0 :(得分:0)

好的,我想出了即时的改进......

module ApplicationHelper

  class Store

    def initialize (cookies)
      @cookies = cookies
    end

    def [] (k)
      @cookies[k]
    end

    def []= (k,v)
      @cookies.permanent[k] = v
    end  

  end    

  def store 
     @store ||= Store.new(cookies)
  end