В действии контроллера мне нужно проверить, будет ли доступ к контроллеру самим приложением (которое установило бы переменную сеанса current_user) или из вызова api. Начало моего контроллера выглядит следующим образом:Изменяется ли переменная scope при использовании bind.pry в рельсах?
130: def create
131: # handle the possibility that this is an api call
132: api_call = current_user.nil?
=> 133: binding.pry
Когда я подглядывать, чтобы увидеть, что происходит, я получаю этот бессмысленный вывод:
[1] pry(#<Crm::ConnectionsController>)> api_call
=> false
[2] pry(#<Crm::ConnectionsController>)> current_user
=> nil
[3] pry(#<Crm::ConnectionsController>)> current_user.nil?
=> true
[4] pry(#<Crm::ConnectionsController>)> api_call = current_user.nil?
=> true
[5] pry(#<Crm::ConnectionsController>)> api_call
=> true
И когда я изменяю переменную api_call из Поддеть консоль со следующей строкой, затем возобновить выполнение, контроллер ведет себя там, как если бы api_call был установлен в true.
Зачем это было? Почему мой контроллер не устанавливает api_call правильно в первую очередь?
Сумасшедший реквизит для того, чтобы иметь одного из реальных авторов pry, ответит на вопрос о SO, даже если это только сказать «Я не уверен». Вы - тот разработчик, который нам нужен, даже если не тот вид, которого мы заслуживаем! – Jazz