Sinatra必须有一些关于助手的事情我不理解,但想知道为什么这不起作用:
helpers do
def session_access_token
p "GETTING: #{@app_id}_#{@page_id}"
session["access_token_#{@app_id}_#{@page_id}"]
end
def session_access_token=(v)
p "Setting: #{@app_id}_#{@page_id} access token to: #{v}"
session["access_token_#{@app_id}_#{@page_id}"] = v
end
end
然后,在这样的行动中:
get '/' do
session_access_token = 'foo'
p session_access_token
end
我看到它们都没有被调用(似乎它正在创建一个新的局部变量)。也就是说,当我打电话给'session_access_token'在其他动作中,我确实看到了getter被调用。
任何建议都将受到赞赏。
答案 0 :(得分:1)
如Sinatra issue所述:something = something_else
永远不会转换为Ruby中的方法调用。你必须写self.something = something_else
。