В моем приложении Rails есть оператор if. Мне нужно сделать базовую проверку типа «если верно и! Ложь». Выражение определяется как:
ActiveRecord::Base.connection.tables.include? 'settings' && !Settings.setting_is_set?('defaults_set')
Если я выражу это как выражение if, if не сработает. Если я запускаю это выражение в консоли, я получаю false.
Теперь, если я изменю выражение следующим образом:
ActiveRecord::Base.connection.tables.include? 'settings' and not Settings.setting_is_set?('defaults_set')
Возвращает true, как и должно, и выполняет свой блок.
Итак, вопрос в том, почему «выражение &&! Expression» не ведет себя как «выражение и не выражение». Это мое понимание && и! должно соответствовать, а не почти напрямую.
Что мне здесь не хватает?