我希望能够在控制器中说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类本身中。
答案 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