Может ли кто-нибудь объяснить мне разницу между if и unless и когда его использовать?
Разница - если/если
Ответ 1
 unless просто отрицается if. То есть, он выполняет все, что он содержит, если условие не соответствует действительности.
unless foo?
    # blabla
end
Просто означает
if !foo?
    # blabla
end
Все дело в том, что вам легче читать, действительно.
См. также: Если, The Abused Ruby Conditional
Ответ 2
Использование "если" для меня просто, когда есть один аргумент, но я нахожу его запутанным, когда его несколько. И при использовании || вместо &&.
"Если только это или нет" для моего мозга просто сложнее. "если не это, а не то" проще.
Это будет сложнее сохранить этот код в будущем, если я его использую. Так что я этого не делаю.
Ответ 3
 unless просто эквивалентен if not. Когда вы используете, что является личным предпочтением.
Ответ 4
Разница между if и unless заключается в том, что они являются точными противоположностями друг от друга:
-  ifпринимает условие, затем-блок и необязательный else-block, и он вычисляет then-block, если условие является правдивым, иначе оно вычисляет else-block
-  unlessпринимает условие, затем-блок и необязательный else-block, и он вычисляет then-block, если условие является ложным, иначе оно вычисляет else-block
Или, другими словами: они означают почти то же самое в Ruby, как и на английском языке.
Ответ 5
 Будучи разработчиком ruby on rails, лучше всего следовать рекомендациям и поддерживать читабельность кода. Мой ответ не имеет прямое отношение к этому вопросу, но это может помочь кому - то, попробуйте использовать, if как можно больше вместо того, чтобы, unless, например, вместо того, чтобы, unless comments.empty? лучше использовать, if comments.present? , а unless comments.present? попробуйте использовать if comments.blank? blank? проверяет как empty и nil.
