Синатра помощник с сеттером - PullRequest
0 голосов
/ 23 декабря 2011

В Синатре должно быть что-то о помощниках, я не понимаю, но удивляюсь, почему это не работает:

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' в других действиях, я вижу, что вызывается геттер.

Любой совет будет оценен.

1 Ответ

1 голос
/ 27 декабря 2011

Как описано в проблеме Sinatra : something = something_else никогда не переводится в вызов метода в Ruby.Вы должны написать self.something = something_else.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...