Переменная экземпляра Rails не назначена в 'или' в контроллере - PullRequest
1 голос
/ 03 мая 2020

Rails 5.2 проект; В контроллере у меня есть:

  def show
    binding.pry
    @correct_user = false
    some_method or (@correct_user=correct_user) or return
    # -> here the value of @correct_user is false
    # some other code here
  end

some_method оценивается как ложное; correct_user метод оценивается как истина здесь; return не достигается, но сразу после этого @correct_user значение переменной false почему это так;

Я провел еще один тест в 'rails console':

irb(main):001:0> def f
irb(main):002:1>   return false
irb(main):003:1> end
=> :f
irb(main):004:0> def a
irb(main):005:1>   return true
irb(main):006:1> end
=> :a
irb(main):007:0> @t=false
=> false
irb(main):008:0> f or (@t=a) or return
=> true
irb(main):009:0> @t
=> true

Так вот работает как и ожидалось

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