Вам нужен оператор end
, чтобы закрыть if
, т. Е.
if(foo['bar'] == nil)
puts "foo bar is nil :("
end
Обратите внимание, что существует nil?
метод для проверки, является ли что-то nil
и скобки вокруг вашего условия не нужны, поэтому было бы более идиоматичным Ruby написать:
if foo['bar'].nil?
puts "foo bar is nil :("
end
Как прокомментировал Arkku , единственная строка if
может быть записана кратко как:
puts "foo bar is nil :(" if foo['bar'].nil?
Что лучше, зависит от контекста (например, хотите ли вы подчеркнуть условие или подчеркнуть, что происходит, если условие выполняется) и определенного количества личных предпочтений. Но в качестве примера вы можете поставить условие охраны в начале метода, например
raise "bar needed" if foo['bar'].nil?