Sinatra帮手与二传手

时间:2011-12-23 19:13:40

标签: ruby sinatra

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被调用。

任何建议都将受到赞赏。

1 个答案:

答案 0 :(得分:1)

Sinatra issue所述:something = something_else永远不会转换为Ruby中的方法调用。你必须写self.something = something_else