Когда я использую сокращенную if/else
заявление с командами Sinatra, я получаю ошибку синтаксиса:Ruby одна строка ifelse заявление не работает с командами Sinatra?
request.cookies['blog'].nil? ? erb :blog : redirect '/done'
возвращает эту ошибку:
/home/sinatra/ptt/ptt.rb:107: syntax error, unexpected tSTRING_BEG, expecting keyword_do or '{' or '(' request.cookies['blog'].nil? ? "erb :blog" : redirect '/done'^
Оба заявления производят ошибки, когда сами по себе (без Синатра кода как другое заявление).
Является ли это проблемой Sinatra или является синтаксической ошибкой?
ошибка не возникает, когда истинные/ложные утверждения просты Ruby:
request.cookies['blog'].nil? ? foo = 1 : bar = 2
В чем вопрос? – sawa