2012-03-21 2 views
1

Я хочу сказать 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 

Это работает, но, разумеется, я не доволен. Как его можно улучшить/сократить. Как все ссылки на «куки» можно поместить в класс Store.

+0

Было бы полезно для избирателей вниз, чтобы добавить комментарий, объясняющий себя, – Mark

+0

Что именно является оскорбительным для кого-то об этом запросе. В Ruby существует много неопределенности в отношении области видимости в Ruby для кого-то из C++ и т. Д. – Mark

ответ

0

ОК, я пришел с немедленным Improvment ...

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 
Смежные вопросы